需要有关使用“ dozer.map”方法的单元测试方法的建议

时间:2019-01-16 18:16:08

标签: unit-testing spring-boot dozer

我有一个empModel和empDto对象。在Spring Boot应用程序中,我正在拨打服务电话以按ID获取员工模型。在该方法中,通过进行服务调用从数据库中获取empModel。 Dozermapper将填充DTO并返回dto。 DozerMapper已注入到控制器中。

面对单元测试方法的困难。 我可以使用when / thenReturn模拟服务。但是,我无法将dozerMapper模拟为具有无效返回的方法。什么是对方法进行单元测试的正确方法?

  @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 :(得分:1)

如果调用将EmpDto类作为第二个参数传递的map方法,则推土机将创建EmpDto。它返回EmpDto实例,该实例易于模拟

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