2013-05-17 4 views
1

req.session.username = user.username;Являются ли объекты req и res как-то доступными глобально в NodeExpress?

Я использую supertest для проверки маршрутизации. В моем журнале в коде обработки У меня есть следующий, если вход пользователя в успешно -

req.session.username = user.username; 

Но в Supertest перезвонит функцию не имеет доступ к объекту REQ.

request(app) 
      .post('/login') 
      .send({username: 'dummy_username', password: 'valid_password'}) 
      .end(function(err, res){ 
      if (err) { return done(err); } 
      expect(err).toBe(null); 
      expect(res.status).toEqual(200); 
      done(); 
      }); 

Я хотел бы добавить в чем-то вроде expect(req.session.username).toBe('dummy_username'), но очевидно, что я не могу это сделать, когда REQ не доступен для меня. Так есть способ ссылки на объект req?

ответ

1

Supertest предназначен только для тестирования ответов, так как тестирование запроса (и его обработка на стороне сервера) будет тестировать детали реализации вместо поведения. supertest - не лучший инструмент для этой работы. Вы можете писать чистые модульные тесты для некоторых своих функций на стороне сервера, или вы можете указать, что маршрут /login включает информацию пользователя в тело ответа (что типично) и убедитесь, что информация соответствует тому, что было в запросе.

 Смежные вопросы

  • Нет связанных вопросов^_^