ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [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 스타일은 이렇다고 하니 참고해보는걸로~

Designed by Tistory.