我正在使用mocha测试登录过程,这是我的示例测试用例
var request = require('supertest');
var app = require('../app');
describe('Example', function() {
var agent = request.agent(app);
before(register(user));
before(login(agent, user));
before(function(done) {
agent
.get('/verify')
.expect(200)
.end(done);
});
});
register
和login
函数都正常工作,多次按照预期的顺序执行,先是register
然后login
然后请求。但在第三个before
中,/verify
总是说agent
没有登录。
如果我改变代码:
describe('Example', function() {
var agent = request.agent(app);
before(register(user));
before(login(agent, user));
it('should login as expected', function(done) {
agent
.get('/verify')
.expect(200)
.end(done);
});
});
此时agent
按预期记录。有点奇怪。希望有人可以帮助我,谢谢。
答案 0 :(得分:0)
mocha不保证您之前设置的函数的执行顺序()。要做到这一点,您应该将所有操作作为函数放在同一个代理程序调用中,或者(更有可能)使用async.series使您的之前的函数按照您希望的顺序完成。