Использовать ли сеттер после создания через @InjectMocks?

Разрабатываю модульный тест для метода create. Решаю не мокать employeeModelMapper. Насколько правильно задать его значение через setEmployeeModelMapper? Может быть есть более корректные/стабильные для тестирования способы? Например обходиться без @InjectMocks

Контроллер

@RestController
@RequestMapping("/employee")
@AllArgsConstructor
@Setter
public class EmployeeController {
    private EmployeeService employeeService;
    private ModelMapper employeeModelMapper;

    @PostMapping
    public ResponseEntity<Object> create(@RequestBody EmployeeDTO employeeDTO) {
        var employee = employeeModelMapper.map(employeeDTO, Employee.class);
        employeeService.save(employee);

        return ResponseEntity
                .created(new URI("/employee/" + employee.getId()))
                .build();
    }
}

Тест

@ExtendWith(MockitoExtension.class)
class EmployeeControllerTest {

    @Mock
    private EmployeeService employeeService;

    @InjectMocks
    private EmployeeController employeeController;

    @Test
    public void givenEmployeeDTO_whenCreateEmployee_thenReturnIsCreated(){

        // given
        employeeController.setEmployeeModelMapper(new ModelMapper());

        var employeeId = 0;
        var employeeDTO = EmployeeDTO.builder()
                .id(employeeId)
                .build();

        // when
        var result = employeeController.create(employeeDTO;

        // then
        assertThat(result.getStatusCode()).isEqualTo(HttpStatus.CREATED);
        var location = result.getHeaders().getLocation();
        assertThat(location).isNotNull();
        assertThat(location.getPath()).isEqualTo("/employee/" + employeeId);
    }
}

Ответы (0 шт):