작성
·
208
0
db 에러가 발생하면 next(error) 호출부분 질문드립니다.
User.findOne부분을 mocking해서 reject를 반환하게 해서 에러처리하는 부분을 테스트하는것으로 이해를 하고 있습니다.
user 컨트롤러에서 findOne이 reject를 반환하니,
User.findOne({where: {id : req.user.id}});
이 controller 코드에서 req.user.id가 필요없다고 생각하여 req 객체를 빈 객체로 만들고 테스트를 진행하니, req.user가 undefined라는 에러가 나오며 테스트가 실패하였습니다.
이 부분을 혹시 User.findOne 부분을 mocking 하더라도 findOne 함수 실행을 끝까지 하고 reject를 반환한다고 이해해도 되는것일까요?
답변 1
0
User.findOne({where: {id : req.user.id}});
코드의 실행 순서를 잘 생각해보세요.
req.user.id 값에 대한 접근이 findOne 함수 호출보다 먼저 일어납니다.
req.user.id에서 에러가 발생하니 findOne은 호출조차 되지 않습니다.