-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
Description
- 유닛테스트 할 때 레이어별로 테스트를 하는 방법에 대한 공부 및 자료
요약
준비
- mockito 사용 방법
- 의존성 주입 : 유닛테스트할 때 필요한 의존성들을 임의로 주입시킨다.
- 만약 XXXService를 테스트한다고 하고 XXXService가 XXXRepository를 의존하고 있다면 XXXRepository를
@mock으로, XXXService을@injectMocks으로 하면 된다. - `@ExtendWith(MockitoExtension.class)을 통해 사용해라
- mock객체 만드는 방법 및 주입
@Mock: Mock객체(가짜객체) 반환해주는 어노테이션@injectMocks:@Mock으로 생성된 가짜 객체를 이 어노테이션이 달린 애한테 주입시켜준다.
- Stub
- Mock객체로 만들어진 가짜객체의 시나리오를 작성한다
- doReturn(): Mock 객체가 특정한 값을 반환해야 하는 경우
- doNothing(): Mock 객체가 아무 것도 반환하지 않는 경우(void)
- doThrow(): Mock 객체가 예외를 발생시키는 경우
Given, When, Then
일반적으로 테스트 코드를 작성할 때 Given - When - Then (준비, 실행, 검증) 패턴을 활용하면 더 쉽게 코드를 작성할 수 있습니다.
주석을 통해 미리 나눠놓고 짜자
- Given : 준비
- mock 객체를 정의하거나, mockito를 이용하여 stubbing 하는 과정
- When : 실행
- 실제로 호출되어 실행되는 과정
- Then : 검증
- 기댓 값과 비교하거나, 예상대로 메서드가 호출되었는지 검증