使用时supertest
为了在 JavaScript 中测试异步 HTTP 请求,这两个片段有什么区别?其中一项是正确的,另一项是错误的吗?
request('http://localhost:8080/').get('/api/people')
.expect(res => res.body.should.have.length(5))
vs.
request('http://localhost:8080/').get('/api/people')
.then(res => res.body.should.have.length(5))
我能注意到的唯一区别是:
-
expect
返回一个Test
对象,并且当测试失败时,打印一个大的堆栈跟踪
-
then
返回一个Promise
对象,并且当测试失败时,
打印一个小的堆栈跟踪
根据您使用的测试运行程序显然会影响答案,但是类似Mocha
将允许您返回Promise
直接在您的测试中,这将等待测试通过之前解决。
所以如果你有类似的事情:
describe('Your test case', function () {
it('will wait for promise to resolve', function () {
return request('http://localhost:8080/').get('/api/people')
.then(res => res.body.should.have.length(5))
})
})
而在另一个例子中你确实should按照以下方式使用完成回调https://www.npmjs.com/package/supertest https://www.npmjs.com/package/supertest docs.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)