@ExtendWith(MockitoExtension.class)
class ScheduleServiceTest {
@Mock
ScheduleRepository scheduleRepository;
@Test
@DisplayName("일정 등록")
void createSchedule() {
// Given
ScheduleRequestDto requestDto = new ScheduleRequestDto();
requestDto.setTitle("test");
requestDto.setContents("123123");
UserDetailsImpl userDetails = new UserDetailsImpl(new User("tester", "1234", "asd@email.com", USER));
Schedule schedule = new Schedule(requestDto, userDetails);
ScheduleService scheduleService = new ScheduleService(scheduleRepository);
given(scheduleRepository.save(any(Schedule.class))).willReturn(schedule);
// When
ScheduleResponseDto scheduleResponseDto = scheduleService.createSchedule(requestDto, userDetails);
// Then
assertEquals("tester", scheduleResponseDto.getUsername());
assertEquals("test", scheduleResponseDto.getTitle());
assertEquals("123123", scheduleResponseDto.getContents());
}
given(scheduleRepository.save(any(Schedule.class))).willReturn(schedule);
save()에 원래 schedule을 넣었었는데 테스트에서 작성한 schedule 객체랑 실제 createSchedule 메소드 내에 있는 schedule 객체가 일치하지 않아서 문제가 생겼고 이거를 해결하기 위해서 어떤 객체가 들어와도 상관없다는 any(Schedule.class)를 사용해서 문제를 해결할 수 있었다.