我有一个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;
}
答案 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);
}