在Ember mocha和Chai中使用两个`done`函数

时间:2016-05-17 15:43:53

标签: ember.js mocha chai

使用ember mocha和chai可能有两个var.labels

尝试做这样的事情(不起作用)

dones

但我不想说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() }) }) 实际上已经完成了。在一个mocha / chai测试中测试两个异步函数的正确方法是什么

一个很好的选择是,如果它们是mocha或chai中的一些功能,相当于Qunit的assert.async https://api.qunitjs.com/async/

1 个答案:

答案 0 :(得分:1)

您的初始尝试无效,因为Mocha不允许嵌套it次呼叫(即it无法呼叫it)。如果要链接两个带回调的异步操作,您只需将自定义回调传递给第一个,然后将it的{​​{1}}传递给第二个。调整代码:

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是一些异步操作,需要回调来通知完成。