Ember.js 如何将qunit bdd与ember qunit一起使用?
最初由Andreas Haller发布在邮件列表上,在此处重新发布,以便“qunit bdd”标签可供其他人使用 为帮助程序添加一个方便的Ember.js 如何将qunit bdd与ember qunit一起使用?,ember.js,qunit-bdd,ember-qunit,Ember.js,Qunit Bdd,Ember Qunit,最初由Andreas Haller发布在邮件列表上,在此处重新发布,以便“qunit bdd”标签可供其他人使用 为帮助程序添加一个方便的模块,可以将其用作QUnit的模块功能的替代品。现在,ember qunit抽象了一些东西,这样我就不必使用模块函数,也不知道是否可以。我的问题有两个: 描述的实际行为是否与模块相同 我如何使用ember qunit的模块进行/模块组件 如果#2还没有解决方案,那么像description(moduleFor('controller:posts')这样的函数(
模块,可以将其用作QUnit的模块
功能的替代品。现在,ember qunit抽象了一些东西,这样我就不必使用模块函数,也不知道是否可以。我的问题有两个:
描述的
实际行为是否与模块
相同
我如何使用ember qunit的模块进行
/模块组件
李>
如果#2还没有解决方案,那么像description(moduleFor('controller:posts')这样的函数(){…}
就很好了
qunit中的描述
,bdd的作用基本上与qunit中的模块
相同。不同之处在于,它们可以嵌套在qunit bdd中,并且每一层嵌套都将对应于一个名称连接在一起的模块调用。例如,这将导致对模块的三次调用:
describe('Foo', function() {
it('is a function', function() {
expect(typeof Foo).to.equal('function');
});
describe('#foo', function() {
it('says FOO', function() {
expect(new Foo().foo()).to.equal('FOO');
});
});
describe('#bar', function() {
it('says BAR', function() {
expect(new Foo().bar()).to.equal('BAR');
});
});
});
因为无法控制调用了什么模块
函数,所以(目前)无法将qunit bdd与ember qunit一起使用。我们正在讨论如何改变这一点。您的建议可能有效,但需要为ember qunit明确修改qunit bdd。我更喜欢在ember qunit中共享代码,然后为qunit bdd提供一个薄包装。可能与您的类似,但保持qunit bdd的API不变:
describe('PostsController', testFor('controller:posts', function() {
it('has a length', function() {
expect(this.subject.length).to.be.defined();
});
}));
任何建议都将不胜感激。请注意,Qunit现在支持现成的嵌套模块。此处正在跟踪ember qunit对此的支持: