如何解决使用 mocha 和 chai
我是使用 mocha 和 chai 在 node.js 中进行单元测试的新手。 我被困在控制自动返回而不执行的问题上 chai.expect(123).to.be.a("string");
it.only("should fetch status",()=>{
return chai.request(server)
.get("/user/status")
.then((result)=>{
let data = result.body;
console.log("till here execute");
//this line is not executed and test case is passed even when the below line expect to fail the test
chai.expect(123).to.be.a("string");
})
.catch(err=>err);
});
控制台显示上面的测试用例通过了我不知道如何以及为什么
chai.expect(123).to.be.a("string");
未执行
解决方法
这与您的catch
有关。
基本上,当您的 chai.expect
失败时,它会抛出一个 AssertionError
。
在给定的代码中,您返回的是捕获错误,而不是抛出它。
根据chai.js官方文档,在https://www.chaijs.com/plugins/chai-http/中找到,在处理promise的时候,在catch
里面必须throw
捕获错误。
那样,改变:
.catch(err=>err);
到:
.catch(err => {throw err});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。