我有一些看起来像这样的测试:
it('does stuff', function(done) {
somePromise.then(function () {
expect(someSpy).to.have.been.called
done()
})
})
如果该测试中的断言失败,它将无声地失败,并且测试本身将超时,因为永远不会到达done()
。例如,这个:
it('does stuff', function(done) {
expect(1).to.equal(2)
somePromise.then(function () {
expect(someSpy).to.have.been.called
done()
})
})
会失败,并且会有一个很好的错误,解释说我们期待1但得到2.但是,这个:
it('does stuff', function(done) {
somePromise.then(function () {
expect(1).to.equal(2)
expect(someSpy).to.have.been.called
done()
})
})
将因超时而失败。我收集的问题是我不在“它”的背景下,但处理这个问题的最佳方法是什么?
答案 0 :(得分:2)
失败的断言基本上都是抛出的错误。你可以像catch
那样在承诺中发现任何错误。
it('does stuff', function(done) {
somePromise.then(function () {
expect(1).to.equal(2)
expect(someSpy).to.have.been.called
done()
})
.catch(done)
})