在测试依赖于外部生成器的生成器时,我不明白如何使用createDummyGenerator()
函数。
我尝试过:
test.js:
...
return helpers.run(require.resolve('../generators/app'))
.withGenerators([
[helpers.createDummyGenerator(), 'license:app'],
])
.then(() => {
assert.textEqual('true', 'true')
});
...
index.js:
...
default() {
this.composeWith('license:app', { name: 'foo' });
}
...
这使测试失败,因为它找不到license:app的生成器。我的package.json中有generator-license作为依赖项。
我还尝试了以下方法:
test.js:
...
beforeEach(() => {
jest.mock('generator-license/app', () => {
const helpers = require('yeoman-test');
return helpers.createDummyGenerator();
});
}
...
index.js:
...
default() {
this.composeWith(require.resolve('generator-license/app', { name: 'foo' }));
}
...
这根本不模拟生成器,它使用实际的生成器许可证代码,这使得测试失败,因为未提供所有提示(某些提示应由许可证生成器询问)
我应该如何使用createDummyGenerator()
助手来完全创建许可证生成器?
答案 0 :(得分:0)
好吧,我觉得自己是个白痴...我在另一个测试中有一个错字,它没有模拟模块,这就是导致测试套件失败的原因...没关系,这里没什么可看的了:)>