JAVA

BDD 스타일 Mockito API

응디 2022. 12. 26. 17:00

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