node.js - Mocha 测试 done() 和 done 作为函数参数之间的区别

标签 node.js unit-testing testing mocha.js

请解释 done() 方法和作为参数传递给函数的 done 关键字之间的区别?

it("qwerty",function(done){
  ------
  ------
  done();
});

it('qwerty', function(done){
  ----------
  ----------
  .expect(404, done);
})

请解释区别以及我可以在循环中调用 done() 多少次 如果我调用了 15 次,我会收到错误消息“multiple times done() called”

最佳答案

在第一个示例中,您显式调用了它。在第二个中,您将 done 函数作为回调传递给 expect。它检查响应状态(我假设您使用 supertest 库),如果它等于 404,则调用不带参数的 done 函数(无错误)。否则它会调用 done 并带有类似断言错误的实例,因此 mocha 知道这是一个失败的测试。

作为常规回调,done 不应被多次调用。它应该只被调用一次,表示某个 Action 的结束,你的案例中的测试。如果您正在寻找未通过测试的能力,只需throw即可。

关于node.js - Mocha 测试 done() 和 done 作为函数参数之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32561293/

相关文章:

node.js - Nodejs Busboy 中未定义请求正文参数

asp.net-mvc - 如何对类似于 "using(Html.BeginForm()){ }"的 HtmlHelper 进行单元测试

c++ - 使用头文件的静态方法c++的GoogleTest

unit-testing - 在 jestjs 中完成测试后无法登录

testing - 我们什么时候应该使用@InjectMocks?

jquery - 如何使用jquery将数据传递到node.js后端

javascript - 带有模板文字的字符串中的字符串

node.js - Mongoose .js : is it possible to change name of ObjectId?

Android:如何对 "IllegalStateException: Can not perform this action after onSaveInstanceState"进行单元测试

javascript - 如何使用 chai.js 断言数组交集?