JVM/JUnit

[JUnit] 소개 - 5. BDDMockito 란?

헹창 2023. 9. 27.
반응형

BDDMockito

  • BDD (Behavior-Driven Development Mockito) : 행위 주도 개발
  • 테스트 대상의 상태의 변화를 테스트하는 것으로, 시나리오를 기반으로 테스트하는 패턴을 권장한다.
  • BDD 권장 패턴 : Given, When, Then

 

Mockito 와 차이 코드로 살펴보자

Mockito Example (given, when, then)

@ExtendWith(MockitoExtension.class)
public class MockAnnotation {

    @Spy
    UserService userService;

    @Test
    void test() {
        User user = new User("heng", 29);

        // given
        when(userService.getUser()).thenReturn(user);	

        // when
        String name = userService.getUser();

        // then
        assertEquals("haenny", name);	
    }

}
  • given 조건에서 Mockito.when method 를 이용해 스터빙하는 곳을 보면,
    given 조건에서 명칭이 같은(가독성에 혼돈을 주지않는)메소드를 사용하기 위해 BDD Mockito가 등장함

BDDMockito 적용 Example

@ExtendWith(MockitoExtension.class)
public class MockAnnotation {

    @Spy
    UserService userService;

    @Test
    void test() {
		User user = new User("heng", 29);

		// given
		BDDMockito.given(userService.getUser()).willReturn(user);	

		// when
		String name = userService.getUser();

		// then
        assertEquals("haenny", name);
    }

}
  • Mockito.when → BDDMockito.given
  • Mockito.verify → BDDMockito.then
  • BDDMockito는 Mockito 와 이름만 다를 뿐 사용법은 같다.
728x90
반응형

댓글

추천 글