2013-11-26 10 views
8

私はNode.jsアプリケーションをsupertestでテストしています。私のコントローラでは、私はセッションオブジェクトにアクセスします。有効なリクエストを作成するには、このセッションオブジェクトをいくつかのデータで埋める必要があります。NodeJSセッションオブジェクトへのsupertestアクセス

コントローラ

 // determine whether it is user's own profile or not 
     var ownProfile = userId == req.session.user._id ? true : false; 

テスト

it('profile', function (done) { 
    testUserOne.save(function(error, user){ 

     request 
      .agent(server) 
      .get('/profile?userId=' + user._id) 
      .expect('Content-Type', /html/) 
      .expect(200) 
      .expect(/Profile/) 
      .end(done); 
    }) 
}); 

質問

はどのようにすれば、REQ /セッションオブジェクトを模擬することができますか?

答えて

9

この新しいlibには、トリックを行う必要があります。

はまたsupertestの一部であるsuperagentを見ているかもしれません。ここでは、この上の素敵なチュートリアルです:

は別のlibをしたくないですか?親アプリ内で)ちょうどサブアプリとして使用し、(自分の認証済みを呼び出す

5

...この方法を試してください。

var mockApp = express(); 
mockApp.use(session); 
mockApp.all('*', function(req, res, next) { 
    //authenticated(req, res, next); 
    //OR 
    req.session.uid = 'mock uid'; 
    next(); 
}); 
mockApp.use(app); 

すべてのルートが認証されます一致する前に!

関連する問題