我正在努力理解JavaScript中的单元测试,使用Mocha/Sinon/Chai。我已经看到了done()
使用的功能。但我似乎找不到此功能的文档。它似乎不是JavaScript语言的一部分。如果是这样,我希望在 Mozilla 文档中看到它[something].prototype.done()
.但它不存在。我在jQuery的文档下没有看到它,也没有在Mocha的文档下看到它。
在另一个线程上,我看到了这个done()
示例:
it('should have data.', function () {
db.put(collection, key, json_payload)
.then(function (result) {
result.should.exist;
done();
})
.fail(function (err) {
err.should.not.exist;
done();
})
})
什么是done()
,它是哪种语言或工具的一部分,它的文档在哪里?done()
只是回调函数的命名约定吗?
Done
是 mocha 将作为单元测试it block
的第一个参数提供的回调。测试异步代码时通常需要它,因为可以调用它来通知 mochait block
已完成。最好将回调命名为done
。但是,您可以根据需要命名它。 您可以在此处找到其文档,只需在Windows上按ctrl+ f或在MAC上按⌘+f,然后输入done
。
it('should have data.', function (done) { // inject done here
db.put(collection, key, json_payload)
.then(function (result) {
result.should.exist;
done();
})
.fail(function (err) {
err.should.not.exist;
done();
})
})
从摩卡网站复制以下内容。
Testing asynchronous code with Mocha could not be simpler! Simply invoke the callback when your test is complete. By adding a callback (usually named done) to it(), Mocha will know that it should wait for this function to be called to complete the test. This callback accepts both an Error instance (or subclass thereof) or a falsy value; anything else will cause a failed test