具有特定配置设置的单元测试 vscode 扩展
Unit test vscode extension with specific configuration settings
我有一个使用配置设置的 vscode 扩展程序 (Typescript)。我想根据特定的配置设置对我的扩展程序的行为进行单元测试。
我的问题是配置更改似乎只在 测试执行后 写入,这意味着测试 运行 没有应用更改的设置。这是我的测试结果:
test("LoadConfiguration - Shows error when configuration can't be loaded", () => {
let settings = vscode.workspace.getConfiguration("my-extension");
settings.update("MySettingCollection", [{ "param1": "", "param2": "someValue" }], true);
ConfigurationLoader.LoadConfiguration();
//asserts ommitted
});
在ConfigurationLoader.LoadConfiguration
中,我有:
public LoadConfiguration() : boolean {
let configuration = vscode.workspace.getConfiguration('my-extension');
if (configuration.has('MySettingCollection')) {
//logic to read MySettingCollection...
}
}
有没有什么方法可以让我说 "set up the test with these values" 并让 运行 并在执行测试之前写入文件?也许我需要 运行 一些异步的东西?我查看了 Mocha 的 before
和 beforeEach
,但我不确定它是否适合我正在尝试做的事情。
答案就是让一切async
! update
函数 returns a Thenable
是可等待的。这需要等待以确保在调用方法继续执行之前写入配置。
测试回调现在标记为 async
,由 mocha 框架自动处理。 ConfigurationLoader.LoadConfiguration
也被设为异步。
test("LoadConfiguration - Shows error when configuration can't be loaded", async () => {
let settings = vscode.workspace.getConfiguration("my-extension");
await settings.update("MySettingCollection", [{ "param1": "", "param2": "someValue" }], true);
await ConfigurationLoader.LoadConfiguration()
//asserts ommitted
});
我有一个使用配置设置的 vscode 扩展程序 (Typescript)。我想根据特定的配置设置对我的扩展程序的行为进行单元测试。
我的问题是配置更改似乎只在 测试执行后 写入,这意味着测试 运行 没有应用更改的设置。这是我的测试结果:
test("LoadConfiguration - Shows error when configuration can't be loaded", () => {
let settings = vscode.workspace.getConfiguration("my-extension");
settings.update("MySettingCollection", [{ "param1": "", "param2": "someValue" }], true);
ConfigurationLoader.LoadConfiguration();
//asserts ommitted
});
在ConfigurationLoader.LoadConfiguration
中,我有:
public LoadConfiguration() : boolean {
let configuration = vscode.workspace.getConfiguration('my-extension');
if (configuration.has('MySettingCollection')) {
//logic to read MySettingCollection...
}
}
有没有什么方法可以让我说 "set up the test with these values" 并让 运行 并在执行测试之前写入文件?也许我需要 运行 一些异步的东西?我查看了 Mocha 的 before
和 beforeEach
,但我不确定它是否适合我正在尝试做的事情。
答案就是让一切async
! update
函数 returns a Thenable
是可等待的。这需要等待以确保在调用方法继续执行之前写入配置。
测试回调现在标记为 async
,由 mocha 框架自动处理。 ConfigurationLoader.LoadConfiguration
也被设为异步。
test("LoadConfiguration - Shows error when configuration can't be loaded", async () => {
let settings = vscode.workspace.getConfiguration("my-extension");
await settings.update("MySettingCollection", [{ "param1": "", "param2": "someValue" }], true);
await ConfigurationLoader.LoadConfiguration()
//asserts ommitted
});