其他响应码则为 Chai 中的 200
Other response codes then 200 in Chai
我是 Chai 的新手。
据我了解,为了使测试正常进行,路由应始终为 return http 代码 200。
那是对的吗?
一旦我有一条 returning 200 以外的路由,我就会在测试套件中遇到错误(例如未捕获的错误:内部服务器错误)。
在我的路线中,当传递的数据错误时(例如验证)我想 return 除了 200 之外的其他代码。
我想我在某处读到,对于 return 不正常的资源(例如验证错误或数据库错误),return 除了 200 之外的其他代码可能是一个很好的做法。
但似乎我必须 return 200 才能使 Chai 测试正常工作。
我是不是遗漏了什么,或者它真的需要一直是 200?
不,它不一定是 200。您需要使用回调语法,并注意它使用错误优先回调样式。如果您预计会出现错误,那么只要错误是正确的,就让您的测试通过。例如
it('fails, as expected', function(done) { // <= 传入 done 回调
chai.request('http://localhost:8080')
。得到('/')
.end(函数(错误, res) {
期望(res)。to.have.status(400);
完毕(); // <= 调用完成以表示回调结束
});
});
这是来自 chai-http 文档。 https://github.com/chaijs/chai-http/blob/master/README.md
我是 Chai 的新手。 据我了解,为了使测试正常进行,路由应始终为 return http 代码 200。 那是对的吗? 一旦我有一条 returning 200 以外的路由,我就会在测试套件中遇到错误(例如未捕获的错误:内部服务器错误)。
在我的路线中,当传递的数据错误时(例如验证)我想 return 除了 200 之外的其他代码。 我想我在某处读到,对于 return 不正常的资源(例如验证错误或数据库错误),return 除了 200 之外的其他代码可能是一个很好的做法。 但似乎我必须 return 200 才能使 Chai 测试正常工作。 我是不是遗漏了什么,或者它真的需要一直是 200?
不,它不一定是 200。您需要使用回调语法,并注意它使用错误优先回调样式。如果您预计会出现错误,那么只要错误是正确的,就让您的测试通过。例如
it('fails, as expected', function(done) { // <= 传入 done 回调 chai.request('http://localhost:8080') 。得到('/') .end(函数(错误, res) { 期望(res)。to.have.status(400); 完毕(); // <= 调用完成以表示回调结束 }); });
这是来自 chai-http 文档。 https://github.com/chaijs/chai-http/blob/master/README.md