Mockito BDD 스타일 API
The Java Mockito BDD 스타일 API
백기선님의 강의인 The Java 애플리케이션을 테스트하는 다양한 방법
을 듣고 공부한 내용을 정리한 글
BDD 스타일이란?
BDD : Behaviour-Driven Development
애플리케이션이 어떻게 행동해야 하는지에 대한 공통된 이해를 구성하는 방법으로, TDD에서 창안했다.
테스트 행동에 관한 스팩이 핵심
- Title
- Narrative
- 어떤 스터디에 참가하는 사람으로써 (As a) / 스터디에 참가하고 싶다.(I want) / 그래서 갈 수 있다는 의사를 표현한다. (so that)
- Acceptance criteria
- Given / When / Then
Mockito에서도 이러한 BDD 스타일을 제공해준다.
그런데 앞서 배운 when의 경우 BDD에서 given에 해당하는데 메소드 이름이 좀 그렇다.
그래서 Mockito에서 given이라는 메소드를 제공하며 행위는 when가 동일하다.
// Before
when(service.findById(1)).thenReturn(user);
// After
given(service.findById(1)).willReturn(user);
구조는 거의 유사하다.
또한 앞에서 배운 verify 또한 BDD의 then으로 바꿀 수 있다.
// Before
verify(service,times(1)).notify(any());
// After
then(service).should(times(1)).notify(study);
이렇게 간단하게 BDD 스타일로 작성하는 것이 가능하다.
BDD 역시 Principle이기 때문에 반드시 이렇게 해야한다는 것은 아니다.
Reference
백기선님 인프런 강의 더 자바, 애플리케이션을 테스트하는 다양한 방법