Javascript Can';在Mocha的功能之前,您无法登录代理
我正在用mocha测试一个登录过程,下面是我的示例测试用例Javascript Can';在Mocha的功能之前,您无法登录代理,javascript,mocha.js,supertest,superagent,Javascript,Mocha.js,Supertest,Superagent,我正在用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) {
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
然后请求。但是在第三次之前
,/verify
总是说代理
没有登录
如果我将代码更改为:
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
按预期记录。真奇怪。希望有人能帮助我,谢谢。摩卡不能保证您之前设置的函数的执行顺序()。要做到这一点,您应该将所有操作作为函数放置在同一个代理调用之外,或者(更可能)使用以使您的before函数按您希望的顺序完成。mocha似乎确实按照定义的顺序执行before(),正如TJ在这里所说:我也在代码中进行了测试,这是真的。