首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >除非调用了done()回调,否则调试器为什么会失败并通过测试?

除非调用了done()回调,否则调试器为什么会失败并通过测试?
EN

Stack Overflow用户
提问于 2016-08-16 15:42:41
回答 1查看 32关注 0票数 0

1)谁能解释一下,为什么在为hapi调试这个jasmine测试时,调试器永远不会命中注入部分中的任何断点(参见注释),除非稍后调用done?缺少一行尚未到达的代码会如何影响前面的调试器?

我知道调用done方法是很重要的(我已经特意注释掉了它)。然而,我对其后果感到惊讶。

2)忘记调用完成方法的另一个不幸的副作用是测试总是通过。如果我犯了一个错误,我宁愿看到它失败,而不是通过。有什么建议吗?

代码语言:javascript
运行
复制
const server = require("../lib/server");
describe("Server hello", function () {
 it("returns status code 200", function (done) {
  server.inject({ method: 'GET', url: '/' }, (res) => {
   // Never reached if done uncommented - even by debugger breakpoint - why?");
   console.log("GOT " + res.payload);
   expect(res.statusCode).toBe(200);
   // done(); // Test always passes if uncommented - is there any way to force an error instead?
  });
 });
});
EN

Stack Overflow用户

发布于 2016-08-16 16:06:59

Read the source, Luke! Jasmine docs异步测试注意事项:

在上面对beforeEach的调用中调用

函数之前,此规范将不会启动。在调用它的完成之前,这个规范将不会完成。

所以,如果你不调用done,你的套件就不会运行,而不是,它会运行并超时!

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38969188

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档