내 서비스 계층에 대한 단위 테스트를 작성하려고 합니다.
@SpringBootTest
class ClinicServiceTest {
@Mock
private ProcedureRepository procedureRepository;
@InjectMocks
private ClinicService clinicService;
@Test
void setProcedureStatus() {
when(procedureRepository.findById(1L)).thenReturn(Optional.of(initialEntity));
when(procedureRepository.saveAndFlush(expectedEntity)).thenReturn(expectedEntity);
Procedure assertProcedure = clinicService.setProcedureStatus(1L, "CANCELED");
}
}
setProcedureStatus
내 서비스 클래스가 Spring에 의해 자동 연결되는 ModelMapper를 사용하기 때문에 메소드를 호출하면 NullPointerException이 발생합니다.
@Service
@RequiredArgsConstructor
public class ClinicService {
private final ProcedureRepository procedureRepository;
private final ModelMapper modelMapper;
public Procedure setProcedureStatus(Long procedureId, String status) {
...
return modelMapper.map(procedureEntity, Procedure.class);
}
}
단위 테스트는 Spring 컨텍스트를 발생시키지 않습니다. 이것이 내가 테스트에서 호출할 때 ModelMapper가 Service에서 null인 이유입니다. 이 문제를 해결할 방법이 있습니까?