gpt4 book ai didi

java - 使用 mockito 和 spring 测试服务

转载 作者:行者123 更新时间:2023-11-28 21:27:28 26 4
gpt4 key购买 nike

尝试测试服务方法。这是我要测试的方法:

    @Override
public ReportListDto retrieveAllReportsList() {
List<ReportDto> reportDtos = reportMapper.toDtos(reportRepository.findAll());

return new ReportListDtoBuilder().reportsDto(reportDtos).build();
}

这是我的测试方法(我从一些教程中得到的):

@Test
public void testRetrieveAllReportList() throws Exception {
List<Report> expected = new ArrayList<>();
when(reportRepositoryMock.findAll()).thenReturn(expected);

ReportListDto actual = reportService.retrieveAllReportsList();

verify(reportRepositoryMock, times(1)).findAll();
verifyNoMoreInteractions(reportRepositoryMock);

assertEquals(expected, actual);
}

但是教程没有使用DTO模型。所以最后一个 asert 期望 List<Report>对象和实际 ReportListDto对象。

这是我的 ReportListDto :

public class ReportListDto implements Serializable {
private List<ReportDto> reports = new ArrayList<>();

public List<ReportDto> getReports() {
return reports;
}

public void setReports(List<ReportDto> reports) {
this.reports = reports;
}
}

我如何测试使用 dto 映射器的服务?

最佳答案

如果您在ReportListDTO 对象上实现equalsassertEquals 将使用它。

许多像 intelliJ 或 Eclipse 的 IDE 可以为你做这件事......否则,你可以写这样的东西:

 @Override
public boolean equals(Object o) {
if (this == o)
return true;
if (o == null || getClass() != o.getClass())
return false;

ReportListDto that = (ReportListDto) o;

return reports != null ? reports.equals(that.reports) : that.reports == null;

}

关于java - 使用 mockito 和 spring 测试服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35993798/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com