在Ember mocha和Chai中使用两个`done`函数
问题描述:
使用ember mocha和chai可能有两个dones
?在Ember mocha和Chai中使用两个`done`函数
试图做这样的事情(不工作)
function doSomething() {
it('somethinng else', function(done) {
var res = false
Ember.run.later(() => {
expect(res).to.be.true
done()
})
})
}
it('somethinng', function(done) {
doSomething()
Ember.run.later(() => {
//do other things
done()
})
})
但我不想说的不一定是something
实际进行。什么是测试一个摩卡/柴实验二异步函数的正确方法
一个很好的选择是,如果他们是摩卡或柴一些功能,相当于Qunit的assert.async https://api.qunitjs.com/async/
答
您最初的尝试不能工作因为摩卡不允许嵌套it
调用(即it
不能调用it
)。如果要链接两个采用回调的异步操作,则可以将自定义回调传递给第一个,并将it
的done
传递给第二个。适应代码:
function doSomething (done) {
var res = false;
Ember.run.later(() => {
expect(res).to.be.true;
done();
});
}
it('something', function (done) {
doSomething(function() {
doSomethingElse(done);
});
});
doSomethingElse
将doSomething
运行后完成。我假定doSomethingElse
是一些需要回调来通知完成的异步操作。
这个答案与我的工作方式不完全相同,但仍然没有我想要的功能?并且仍然只使用一个完成的操作 – Hillboy
那么,你的问题还不清楚。 – Louis