BDD는 잘짠 TDD 와 같다.
BDD는 말 그대로 행동 주도 개발이다. → 사용자의 행위까지 생각하고 테스트하며 개발한다.
테스크는 Given-When-Then 이라는 양식에 맞춰서 사용한다.
아래는 테스트 코드는 BDD 방식으로 변경한 예시이다.
/* Given */
when(memberService.findById(1L)).thenReturn(Optional.of(member));
when(studyRepository.save(study)).thenReturn(study);
// when 을 BDD 스타일로 변경하면 given을 사용
given(memberService.findById(1L)).willReturn(Optional.of(member));
given(studyRepository.save(study)).willReturn(study);
/* When */
verify(memberService, times(1)).notify(study);
verify(memberService, times(1)).notify(member);
// verify 를 BDD 스타일로 변경하면 then 을 사용 하면 됨
then(memberService).should(times(1)).notify(study);
then(memberService).should(times(1)).notify(member);
/* Then */
assertNotNull(study.getOwner());
/*verifyNoMoreInteractions(memberService);*/
then(memberService).shouldHaveNoMoreInteractions();
'JAVA' 카테고리의 다른 글
동작 파라미터화 코드 전달하기(1) (0) | 2023.01.10 |
---|---|
int 와 long (0) | 2022.12.27 |
Mock 객체 확인 (0) | 2022.12.15 |
Mock 객체 stubbing (0) | 2022.12.15 |
Mockito (0) | 2022.12.14 |