-
2021.07.19 기록장TIL 2021. 7. 18. 23:16
ToDo
- 알고리즘 2문제
- 책 읽기
- 토비의 스프링
- 북마크 보기
- 컨트리뷰어 지원
Done
- 알고리즘 2문제
- 컨트리뷰어 지원
- 토비의 스프링
Weekly goal
- 책 읽기
- 토비 스프링 코딩
토비의 스프링
428p.
Mockito를 처음 써보는 하루였다. 이전까지는 단위 테스트, 내가 행했던 단위 테스트는 class 내부에서 아무런 의존 없이 행할 수 있었던 것들인데, 이번에는 다른 계층까지 mock으로 만들어서 test를 하게 되었다.
토비님 책에서 말하는 단위 테스트는 정하기 나름이지만, 목 오브젝트나 대역을 시켜서 하는 것 까지 단위 테스트라고 칭하고 다른 계층과 연동되거나 외부의 DB, 서비스 등을 사용하는 것을 통합 test라고 정했다.
mockito를 통해 바꿔보았다.
목 오브젝트는 간단하게 mock()을 통해 만들 수 있고 특정 메서드의 반환 값을 정할 때는 when(). thenReturn()을 통해 정할 수 있다.
1.
특정 메서드의 호출 횟수를 알아보려면
verify(확인할 객체, times())와. 확일할 메서드(any(파라미터 타입))을 통해 알 수 있다. any를 쓰면 파라미터의 내용은 무시하고 검증한다.
2.
verify(확인할 객체). 확인할 메서드(객체)는 메서드(update)에 객체(users.get(1))가 호출된 적이 있는지 확인을 한다.
3.
여태 메서드가 몇 번 호출됐는지, 해당 메서드에 호출된 게 이 객체가 맞는지 검사했다면
ArgumentCaptor는 실제로 전달된 파라미터를 가지고 와서 검증을 한다.
send메서드가 2번 호출됐는지(update시에 메일 전송을 하기에) 검사하고
전달된 SimpleMail들을 가지고 와서 내용을 검사한다. getTo 등은 mail 메서드라서 객체마다 다르게 get~~으로 변경해 사용하면 된다.
'TIL' 카테고리의 다른 글
2021.07.21 기록장 (0) 2021.07.20 2021.07.20 기록장 (0) 2021.07.19 2021.07.18 기록장 (0) 2021.07.17 2021.07.17 기록장 (0) 2021.07.16 2021.07.16 기록장 (0) 2021.07.15