我正在编写一个 vs code 扩展,它提供一个命令,当执行该命令时,会显示一个快速选择列表,一旦用户从中选择任何项目,就会执行进一步的操作。
现在我想编写一个涵盖此场景的测试,如何在执行命令后模拟用户的选择?
使用 JavaScript 和 Chai/Sinon 存根,可以像这样存根 vscode 命令面板函数:
quickPickStub = mySandBox.stub(vscode.window, 'showQuickPick');
inputBoxStub = mySandBox.stub(vscode.window, 'showInputBox');
然后指示他们返回什么:
quickPickStub.resolves({label: 'hello world'});
inputBoxStub.resolves('hello world');
AFAIK,不可能模拟用户在树视图上选择项目。
我建议查看 Red Hat 提供的 vscode-extension-tester 软件包。可以在此 GitHub 存储库中找到它:https://github.com/redhat-developer/vscode-extension-tester/wiki/Input#quickpickitem
使用此包,您可以按照文档中提供的代码片段解决您的问题:
import { InputBox } from 'vscode-extension-tester';
const input = InputBox.create();
const picks = await input.getQuickPicks();
await input.selectQuickPick(1);