나는 이것이 몇 번 논의되었습니다 알아요. 어쨌든, 모든 솔루션이 제 요구 사항에 (완벽하게) 맞지 않는 것 같습니다. 나는 다음과 같은 코드를 가지고있다 :유닛 테스트 익스프레스 라우터
router.js:
------------------
var Router = function(app, resourceName, controller) {
//Create
app.post('/api/' + resourceName, function(req, res) {
console.log('Incoming request: ' + resourceName + ' (POST)');
controller.create(req, res);
});
};
module.exports = Router;
이것은 매우 일반적인 "라우터"이다.
var app = express();
var userController = ...
var userRouter = new Router(app, 'Users', userController);
그래서 나는 자원 당 파일을 작성하지 않아도하지만 난 단 하나의 일반적인 라우터가 :이 같은 서버에 예를 들어 인스턴스화 할 수 있습니다.
내 일반적인 라우터를 테스트하고 싶습니다하지만 몇 가지 문제를 참조하십시오
- 방법 "주입"앱을? Express (
var app = express();
)의 인스턴스를 만들 수 있지만 모의 테스트가 더 좋을 것이라고 생각합니다 (통합 테스트가 아닌 단위 테스트이므로!). 적절한 모의를하는 가장 좋은 방법은 무엇입니까? - 정확히 테스트해야 할 사항은 무엇입니까? 내가보기에는 라우터 자체가 (통합없이) 다른 것을하지 않고 콘솔 출력 (테스트 할 가치가 없다)과 함수 호출 (
controller.create(req, res);
)을 수행한다. 이 함수가 호출되는지 어떻게 테스트해야합니까? 아니면 테스트 할 다른 것이 있습니까?