Today I Learned
TIL JUNIT, MOCKITO
메밀국수가생각나
2021. 12. 1. 00:22
오늘은 테스트 툴인 JUNIT, MOCKITO를 사용하는 방법을 배웠습니다.
MOCK은 모조품 이란 뜻으로보아 MOCKITO는 모조품을 만들어 주는 라이브러리로 유추해봅니다.
코드는 아래와 같습니다.
@ExtendWith를 통해서 MockitoExtension 클래스를 부모 클래스로 사용하고
mock을 통해서 가상의 레퍼지토리를 생성한 다음
injectmock을 통해서 가상의 서비스로 합칩니다.
@test 어노테이션이 붙은 메서드를 이용해서 테스트를 진행하고 given메서드와 그 안에 anyString을 통해서 랜덤 한 값을 통해 생성된 값을 예상 값과 비교해서 제대로 값이 생성되었는지를 확인하는 작업을 통해서 테스트를 진행합니다.
@ExtendWith(MockitoExtension.class)
class DMakerServiceTest {
@Mock
private DeveloperRepository developerRepository;
@Mock
private RetiredDeveloperRepository retriredDeveloperRepository;
//@Autowired
@InjectMocks
private DMakerService dMakerService;
@Test
public void testSomething() {
given(developerRepository.findByMemberId(anyString()))
.willReturn(Optional.of(Developer.builder()
.developerLevel(SENIOR)
.developerSkillType(FRONT_END)
.experienceYears(12)
.statusCode(EMPLOYED)
.name("name")
.age(12)
.build()
));
DeveloperDetailDto developerDetailDto = dMakerService.getDeveloperDetail("memberId");
assertEquals(JUNIOR, developerDetailDto.getDeveloperLevel());
assertEquals(FRONT_END, developerDetailDto.getDeveloperSkillType());
assertEquals(12, developerDetailDto.getExperienceYears());
}
}