Mockito 연습 문제
The Java Mockito 연습 문제
백기선님의 강의인 The Java 애플리케이션을 테스트하는 다양한 방법
을 듣고 공부한 내용을 정리한 글
연습 문제
// StudyService.java
public Study openStudy(Study study) {
study.open();
Study openedStudy = repository.save(study);
memberService.notify(openedStudy);
return openedStudy;
}
// StudyServiceTest.java
@DisplayName("다른 사용자가 볼 수 있도록 스터디를 공개한다.")
@Test
void openStudy() {
// Given
StudyService studyService = new StudyService(memberService, studyRepository);
Study study = new Study(10, "더 자바, 테스트");
// TODO studyRepository Mock 객체의 save 메소드를호출 시 study를 리턴하도록 만들기.
given(studyRepository.save(study)).willReturn(study);
// When
studyService.openStudy(study);
// Then
// TODO study의 status가 OPENED로 변경됐는지 확인
assertEquals(StudyStatus.OPEND,study.getStatus());
// TODO study의 openedDataTime이 null이 아닌지 확인
assertNotNull(study.getOpenDataTime());
// TODO memberService의 notify(study)가 호출 됐는지 확인.
then(memberService).should().notify();
}
Reference
백기선님 인프런 강의 더 자바, 애플리케이션을 테스트하는 다양한 방법