考虑一个内部使用lambda函数的RESTAPI调用方法,我们如何编写Junit测试用例。我自己尝试过,但未能模拟uri生成器,该生成器在POST API调用中表示为lambda函数。还有如何模拟flatMap中的块。下面给出了我尝试编写单元测试的代码片段。
public ResponseEntity<String> findEmployee(String empName, String empId) {
response = employeeService.post.uri(builder -> builder.path(pathMapper.get("GET_PATH")).queryParam(EMP_ID, empId).build())
.accept(APPLICATION.JSON)
.syncBody(empName)
.exchange()
.flatMap( empResponse -> {
LOGGER.info(empResponse.getStatusCode());
return empResponse.toEntity(String.class);
}).block();
return response;
}
在这里,雇员服务是一个WebClient对象。
朋友不让朋友嘲讽流畅的API。
lambda内嵌,因此无法单独测试。如果需要,则必须将其提取到可测试的方法调用中。
java prettyprint-override"> .flatMap( this::handleResponse )
.block();
...
String handleResponse( Response empResponse ) {
LOGGER.info(empResponse.getStatusCode());
return empResponse.toEntity(String.class);
}
更一般地说,您可能希望查看像Wiremock这样的东西,它设置了一个本地Web服务器,您可以使用设置的测试响应来播种。
有没有任何一个测试REST API的使用硒网络驱动程序Maven TestNG。请分享信息或样本项目
...还有一个很简单的测试... 如果我在IntelliJ中运行这个,测试就会运行并失败。 如果我提交这个项目并将其推送到github,TeamCity会看到变化并开始构建。生成会很快失败,出现以下错误:
问题内容: 您如何在jUnit中编写数据驱动的测试? (我的定义)数据驱动测试是一种从某些外部源(文件,数据库等)读取数据,每行/文件/任何内容执行一个测试,并将结果显示在测试运行程序中的测试,就像您进行了单独的测试- 每次运行的结果将单独显示,而不是汇总显示。 问题答案: 在JUnit4中,您可以使用Parameterized testrunner进行数据驱动的测试。 它的文档记录不是很好,但是
我有这个过滤器类,在使用junit进行测试时需要尽可能高的代码覆盖率。 和测试等级: 当我运行时,它在 线 我如何避免这种情况? 我需要调用这个方法并执行里面的任何内容来提供所需的代码覆盖。
我正在使用Jenkins CI构建我的iOS项目。对于这个任务,我使用sh脚本通过运行xcodebuild直接从git repo构建二进制文件,这很好。目前,我使用eclipse中的appium运行JUnit测试来测试我的应用程序,但我也想将它们集成到Jenkins中。我找到了一些使用ant脚本将JUnit测试集成到jenkins中的教程,但我没有使用ant来构建我的项目。没有ant脚本,我如何将
问题内容: 这是从这个问题开始的:要求我在哪里开始一个新的问题。 问题是我只是对JUnit 或有关的东西之类的东西还不够了解,无法用Jeff Bowman提到的方式解决问题。 问题答案: 在您以后的评论中,我指出了差距:您需要使用Mockito作为规则,而将参数化为Runner,而不是相反。 原因是Runner负责报告测试数量,而Parameterized则根据测试方法的数量和参数化输入的数量来操