⚡ 생각대로 살지 않으면 사는대로 생각한다.
⚡ 나는 어차피 잘 될 놈이다. 이미 잘 되고 있고, 계속해서 잘 되고 있다.


BDD: 애플리케이션이 어떻게 “행동”해야 하는지에 대한 공통된 이해를 구성하는 방법으로, TDD에서 창안했다.

테스트 스펙에 관한 내용이 핵심이다.

행동에 대한 스팩

  • Title
  • Narrative
    • As a
    • I want
    • so that
  • Acceptance criteria(인수 테스트관련)
    • Given(주어진 상황에서)
    • When(이런 행동을 하면,)
    • Then(이럴 것이다.)

Mockito에서도 BddMockito라는 클래스를 통해 BDD 스타일의 API를 제공한다.

Given / When / then 순으로 나눠지는데 Mockito에서 Given에 해당 하는 부분에 메서드 when을 쓰고 있기 때문에, BDD에 스타일에는 어울리지 부분이다.
그래서 When을 Given으로 바꿀 수 있는데, 쉽게 생각하면, 그냥 when 대신 given을 사용하면 된다.
given은 BddMockito라는 클래스로부터 사용할 수 있다.

When -> Given

given(memberService.findById(1L)).willReturn(Optional.of(member));
given(studyRepository.save(study)).willReturn(study);
// `when`은 `given`으로, `thenReturn`은 `willReturn`으로 바꿔주면 된다!

Verify -> Then

then(memberService).should(times(1)).notify(study);
// memberService의 notify를 study를 가지고 호출해야한다.
// `should`안에 times가 있으면, 한번만 호출해야 한다는 의미이다.
then(memberService).shouldHaveNoMoreInteractions();
// memberService가 이후론 사용되지 않아야 한다는 의미.

참고1
참고2

profile
쌩수 Git >> https://github.com/SsangSoo?tab=repositories

0개의 댓글