【发布时间】:2016-07-29 20:07:28
【问题描述】:
在我定义的/config/passport.js 文件中,我正在使用不同的策略:
var
sails = require('sails'),
passport = require('passport'),
LocalStrategy = require('passport-local').Strategy,
CustomStrategy = require('passport-custom').Strategy,
GoogleStrategy = require('passport-google-oauth').OAuth2Strategy,
FacebookStrategy = require('passport-facebook').Strategy;
passport.use(new LocalStrategy({...}, function(email, password, done){...}));
passport.use('my-custom-strategy', new CustomStrategy(function (req, done){...}));
... same for FB and Google
我想做一个集成测试,在其中模拟从这些策略返回给控制器的结果(并专注于控制器的其余部分和服务处理)。具体来说,嘲笑custom-strategy 对我来说很重要。
我可以找到一些稀有的例子,例如 this post 和 followup link,但与我的用例没有太多关联。
谁能给我一些代码示例,我可以从中开始构建测试?
var expect = require('chai').expect
, request = require('supertest')
, sinon = require('sinon')
, passport = require('passport');
describe('/auth', function () {
it('should return correct authentication response with tokens', function (done) {
// here I want to mock the custom strategy (or any other)
var requestBody = {
// some info
};
request(url)
.post('/auth')
.send(requestBody)
.end(function (err, res) {
if (err) {
return done(err);
}
console.log(res.body);
done();
});
});
});
【问题讨论】:
标签: node.js unit-testing sails.js integration-testing passport.js