TIL day 40 - 단위 테스트 중

최병은·2024년 2월 21일
  1. any(Schedule.class)
@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)를 사용해서 문제를 해결할 수 있었다.

profile
안녕하세요

0개의 댓글