在流星应用程序中,我想测试一些休息功能,因此我需要进行一些身份验证。
在我的测试用例中,我想从函数中返回一些auth数据:
const supertest = require('supertest');
function loginUser(auth) {
return function(done) {
request
.post('/users/login')
.send({
username: 'user'
password: '123',
})
.expect(200)
.end(onResponse);
function onResponse(err, res) {
auth.token = res.body.token;
return done();
}
};
}
在这个测试中:
it('auth test by helper function', function () {
let auth = {};
auth = loginUser(auth)(done);
//access auth settings here like:
//auth.token
});
永远不会调用 onResponse
,auth
总是{}
我使用supertest请求3.0.0和mocha 4.1.0作为testrunner(其余的api很简单:json-routes)
更新
似乎返回'功能(已完成)'永远不会被称为......
好的我修复了auth = loginUser(auth)(done);
现在呼叫已完成,但呼叫
后auth
未定义
答案 0 :(得分:1)
您的function loginUser(auth)
会返回另一个功能。所以你应该像这样调用那个函数:
it('auth test by helper function', function (done) { // pass done so mocha knows it needs to wait for the response ...
let auth = {};
loginUser(auth)(function() {
//access auth settings here like:
//auth.token
done();
});
});