现在我正在尝试测试我的控制器,我需要访问会话,我发现你可以使用superagent登录,但我登录到网络应用程序的唯一选择是通过谷歌oauth,并且现在我找不到任何合适的样品用于摩卡测试。有什么帮助吗?
答案 0 :(得分:1)
这取决于您实施会话的方式。
在我的Sails应用程序中,经过身份验证后,我设置了req.session.authenticated = true
,以及Cookie等。如果您正在执行类似的操作,可以执行的一件事是在/login
路由中添加:< / p>
if (process.env.NODE_ENV === 'test') {
req.session.authenticated = true;
// do what you would do next after authentication
} else {
// do normal login procedures
}
然后,在您的测试中,在before
挂钩中,您可以使用superagent
向/login
路由发出身份验证请求:
describe('MyController', function() {
var agent;
before(function (done) {
agent = require('superagent').agent('YOUR_APP_URL');
// authenticate
agent
.post('/login')
.end(done)
});
// in your tests, use the same agent to make future requests
describe('#someAction', function() {
it('should do something', function(done) {
agent.
.post('someAction')
.end(function (err, res) {
// should work!
});
});
});
});
这只是一个想法 - 你可以调整这种方法,但是你要检查会话。这适用于使用Mocha进行测试的我的Sails应用程序。