【发布时间】:2016-03-20 04:29:15
【问题描述】:
我正在尝试使用 Mocha 和 Supertest 测试 API,但没有成功。 我有以下代码:
var supertest = require('supertest');
describe('Routing', function() {
var url = 'http://example.com';
var server = supertest.agent(url);
var credentials = {
user: 'username',
pass: 'password'
};
describe('Login', function() {
it('should login ok given valid credentials', function(done) {
server
.post('/login.php')
.send(credentials)
.end(function(err, res) {
if (err) {
throw err;
}
server.saveCookies(res);
done();
});
});
it('should correctly make an authenticated request', function(done){
server
.get('/api/me/accounts?_=1449865354112')
.end(function(err,res) {
if (err) {
throw err;
}
res.status.should.be.equal(200);
done();
});
});
});
});
登录请求工作正常,我通过了身份验证。第二个调用抛出 401 状态。 我阅读了文档,但无法使其正常工作。
怎么了? 谢谢!
更新:
我终于通过使用.field('user', 'myUsername') 和.field('pass', 'myPassword') 发送参数来获得身份验证。
我还必须在调用之间保留 cookie:
cookie = res.headers['set-cookie']; 当我通过身份验证时,.set('cookie', cookie) 在下一个请求中。
【问题讨论】:
标签: node.js mocha.js supertest