-
[TDD] BDD 스타일의 mockito API개발공부/JAVA 2022. 9. 28. 21:08
인프런 - 더 자바, 애플리케이션을 테스트하는 다양한 방법 (백기선)
https://www.inflearn.com/course/the-java-application-test/dashboard
섹션1. Mockito 중 BDD 스타일의 mockito API 강의 참고BDD
: 애플리케이션이 어떻게 “행동”해야 하는지 에 대한 공통된 이해를 구성하는 방법으로, TDD에서 창안
행동에 대한 스펙
- Title
- Narrative
- As a / I want / so that
- Acceptance criteria
- Given / When / Then
- mockito는 BddMockito라는 클래스를 통해 BDD 스타일의 API를 제공
When → Given
// Mockito 클래스 when(memberService.findById(1L)).thenReturn(Optional.of(member)); when(studyRepository.save(study)).thenReturn(study); // BDDMockito 클래스 given(memberService.findById(1L)).willReturn(Optional.of(member)); given(studyRepository.save(study)).willReturn(study);
Verify → Then
// Mockito 클래스 verify(memberService, times(1)).notify(study); verifyNoInteractions(memberService); // BDDMockito 클래스 then(memberService).should(times(1)).notify(study); then(memberService).shouldHaveNoMoreInteractions();
+) 아무래도 처음 접한건 TDD 스타일이고 given - when - then 형식이 더 익숙한 패턴이겠지만
함수의 내용을 보면 그래도 BDD가 더 직관적으로 느껴진다
given(상황).willReturn(결과)
이런 패턴이 처음 접하는 나에겐 아마 더 빨리 파악이되어 쉽게 익혀지지 않았을까 싶다
난 처음에 when() 이런게 바로 와닿지 않아서 강의를 듣게 됐는데 BDD 스타일은 이렇다고 하니 참고해보는걸로~
'개발공부 > JAVA' 카테고리의 다른 글
input/outputstream 활용한 PDF 다운로드 (0) 2023.02.24 log4j / logback / log4j2 정리 (0) 2022.11.09 [TDD] 예제 테스트 작성 (0) 2022.10.04 [TDD] Mock 객체 생성 및 구현 (0) 2022.09.26 [TDD] mokito를 이용한 유닛 테스트 (0) 2022.09.25