如何使用Mocha对sails js中的google oauth护照进行单元测试

时间:2014-09-02 07:37:22

标签: oauth tdd google-oauth sails.js mocha

现在我正在尝试测试我的控制器,我需要访问会话,我发现你可以使用superagent登录,但我登录到网络应用程序的唯一选择是通过谷歌oauth,并且现在我找不到任何合适的样品用于摩卡测试。有什么帮助吗?

1 个答案:

答案 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应用程序。