【发布时间】:2017-03-19 16:47:43
【问题描述】:
在使用 Mocha 进行单元测试时,我有这样的情况需要测试:
it('should assert true blah blah blah', function () {
return doSomething() // <-- returns a Promise
.then(function(value) {
return setTimeout(function() {
assert.equal(something, true);
},1000);
});
});
所以我有一个从函数返回的 Promise,然后我需要在解决 Promise 后在异步 setTimeout 中执行断言。无论如何,上面的代码似乎总是通过测试。事实上,setTimeout 似乎永远不会运行。如果我在setTimeout 中添加console.log,它永远不会打印出来。 Mocha 完成单元测试并继续前进。
测试这样的事情的正确方法是什么?我看到 Mocha 有某种 done() 方法,但我不确定我是否应该使用它。没完全看懂。
【问题讨论】:
-
你是
returningsetTimeout(function)from.then()
标签: javascript unit-testing asynchronous promise mocha.js