【发布时间】:2018-01-31 22:42:55
【问题描述】:
这是当前的测试:
describe('/POST Register Page', function() {
it('it should register new user', function(/*done*/) {
chai.request(server)
.post('/auth/register')
.send(new_user_data)
.end(function(res) {
expect(res).to.have.status(2017);
// done();
})
})
})
我上次检查,没有2017的http代码,但是,它仍然通过:
Registration
Get register page
GET /auth/register 200 6.989 ms - 27
✓ it should get register page
/POST Register Page
✓ it should register new user
2 passing (147ms)
我想简单地发布一些东西,然后得到回复,然后玩弄回复。
如果我包含done(),我会收到超时错误:
1) Registration /POST Register Page it should register new user:
Error: Timeout of 3000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.
我什么都做不了,至于对错,测试通过了。
虽然这个 get 请求按预期传递:
describe('Get register page', function() {
it('it should get register page', function(done) {
chai.request(server)
.get('/auth/register')
.end(function(err, res) {
expect(err).to.be.null;
expect(res).to.have.status(200);
done();
})
})
})
我是 mocha-cum-chai-chai-http 的新手,到目前为止的体验很奇怪。
谢谢。
【问题讨论】:
-
如果你打算不使用
done回调(如果你有你不应该使用的Promises),那么只需返回chai.request。只需确保您启用了Promisefeature。