2014-09-02 76 views

回答

1

這取決於你如何實現你的會話。

在我的帆的應用程序,在身份驗證之後,我設置req.session.authenticated = true,與曲奇等一件事,如果你正在做類似的事情是在你的/login路線,你可以做的,添加:

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! 
     }); 
    }); 
    }); 
}); 

這只是一個想法 - 你能適應這種方法不過你checki ng會話。這適用於使用Mocha進行測試的我的Sails應用程序。