代码之家  ›  专栏  ›  技术社区  ›  springloaded

如何使用createDummyGenerator()函数?

  •  0
  • springloaded  · 技术社区  · 6 年前

    createDummyGenerator() 在测试依赖于外部发电机的发电机时起作用。

    test.js:

    ...
    return helpers.run(require.resolve('../generators/app'))
      .withGenerators([
        [helpers.createDummyGenerator(), 'license:app'],
      ])
      .then(() => {
        assert.textEqual('true', 'true')
      });
    ...
    

    ...
    default() {
      this.composeWith('license:app', { name: 'foo' });
    }
    ...
    

    这使得测试失败,因为它找不到用于license:app. 我的电脑里有发电机执照package.json 作为一种依赖。


    test.js:

    ...
    beforeEach(() => {
      jest.mock('generator-license/app', () => {
        const helpers = require('yeoman-test');
        return helpers.createDummyGenerator();
      });
    }
    ...
    

    ...
    default() {
      this.composeWith(require.resolve('generator-license/app', { name: 'foo' }));
    }
    ...
    

    这根本不会模拟生成器,而是使用实际的生成器许可证代码,这会导致测试失败,因为没有提供所有提示(有些提示是由许可证生成器发出的)


    我该怎么用这个 createDummyGenerator() 帮助完全删除许可证生成器?

    1 回复  |  直到 6 年前
        1
  •  0
  •   springloaded    6 年前

    我觉得自己像个白痴。。。我在另一个没有模仿模块的测试中有一个输入错误,这就是导致测试套件失败的原因。。。没关系,这里没什么可看的:)