5 unit-testing mocha.js yeoman yeoman-generator
我正在尝试测试生成器组合方案.在我的生成器中,如果某个提示返回true,则调用子生成器
if(this.bar){
this.composeWith('foo:bar', {});
}
Run Code Online (Sandbox Code Playgroud)
我显然分别测试了棒子发电机.但是我希望有一个断言让这个composeWith()被调用.而且我认为问题在于我的技能,而不是自我测试文档,但我不知道如何做到这一点.我明白我需要一个间谍和一个存根.但是文档只列出了函数,而自动生成器本身的测试只是精神上的(我尝试重现他们的步骤,但他们大多使用假人来做所有事情,我只需要将子生成器剔除).
任何帮助将非常感激.谢谢.
我承认文档在这一点上缺乏,我们可以改进它.
这是一个简单的示例,说明如何使用间谍来测试您的子生成器:
var generators = require('yeoman-generator').generators;
var assert = require('yeoman-generator').assert;
before(function (done) {
this.spy = sinon.spy();
var Dummy = generators.Base.extend({
exec: this.spy
});
helpers.run('your/generator')
.withGenerators([
[Dummy, 'foo:bar']
])
.on('end', done);
});
// Then in your assertions
it('run the sub-generator', function () {
assert(this.spy.calledOnce);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
528 次 |
| 最近记录: |