반응형
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
반응형
'JVM > JUnit' 카테고리의 다른 글
[JUnit] JUnit의 Rollback 수행 관리 (1) | 2023.10.03 |
---|---|
[JUnit] 소개 - 6. MockMVC 란 ? (0) | 2023.09.30 |
[JUnit] 소개 - 4. Mokitio 란 ? (1) | 2023.09.26 |
[JUnit] 소개 - 3. Annotation (TestInstance, TestMethodOrder, Tag) (0) | 2023.09.21 |
[JUnit] 소개 - 2. Assertion 과 Assumption (0) | 2022.11.01 |
댓글