Нужен совет по методу модульного тестирования, который использует метод "dozer.map" - PullRequest
0 голосов
/ 16 января 2019

У меня есть объект empModel и empDto. В весеннем загрузочном приложении я звоню в сервис, чтобы узнать модель сотрудника по идентификатору. В этом методе empModel получается из базы данных путем вызова службы. Dozermapper заполняет DTO и возвращает dto. DozerMapper вводится в контроллер.

Столкновение с трудностями при юнит-тестировании метода Я могу издеваться над сервисом используя when / thenReturn. Однако я не могу смоделировать dozerMapper как метод с возвращением void. Каков будет правильный подход к модульному тестированию метода?

  @Inject
  public Controller(DozerBeanMapper dozerBeanMapper, EmployeeService service){
    this.dozerBeanMapper = dozerBeanMapper;
    this.service = service;
  }

  @GetMapping("/{id}")
  public EmpDto getEmployeeById(@PathVariable long id){
    EmpModel empModel = service.getEmployeeById(id);
    EmpDto empDto = new EmpDto();
    dozerBeanMapper.map(empModel,empDto);
    return empDto;
  }

1 Ответ

0 голосов
/ 18 января 2019

Dozer создаст EmpDto, если вы вызовете метод map, передав класс EmpDto в качестве второго аргумента. Возвращает экземпляр EmpDto, который легко смоделировать

@GetMapping("/{id}")
public EmpDto getEmployeeById(@PathVariable long id){
    EmpModel empModel = service.getEmployeeById(id);
    return dozerBeanMapper.map(empModel,EmpDto.class);
}
...