当前位置: 首页 > 知识库问答 >
问题:

窃听模拟返回 HTTP 500

蓬新
2023-03-14

我正在使用wireMock,即使存根响应是200 OK,我也得到了500内部服务器错误的一致响应。

如果我调试,我看到连接总是关闭的。知道可能会出什么问题吗?或者我做错了什么。

这是测试

public class MyControllerTest {

@Autowired
MyController myController;

String id1 = "id1";
String id2 = "id2";
Integer offset = 0;
Integer limit = 1;
int port = 8080;
protected WireMockServer wireMockServer;

@Rule
public WireMockRule wireMockRule = new WireMockRule(wireMockConfig().port(port);

@Test
public void hosDriversHoursOfServiceGet() throws Exception {
    stubFor(WireMock.get(urlEqualTo("/path/endPoint"))
                    .withQueryParam("id1", equalTo(id1))
                    .withQueryParam("id2", equalTo(id2))
                    .withQueryParam("limit", equalTo(limit.toString()))
                    .withQueryParam("offset", equalTo(offset.toString()))
                    .willReturn(aResponse().withStatus(200).withBody((getJsonString()))));
Response response = myController.hosDriversHoursOfServiceGet(driverId, 1, 1);
    assertEquals(Integer.valueOf(1), response.getCount());
}

private String getJsonString() {
    return "{\"count\":1}";
}


}

试图嘲笑:http://localhost:8080/path/endPoint?id1={标识1}

上面的调用是在MyController中自动安装的客户端类中进行的。因为它不是直接调用,所以有可能被嘲笑吗?

共有1个答案

沈建柏
2023-03-14

问题解决了,这都与wiremock和我的应用程序中Javax-servlet-api的依赖性有关。将wiremock从wiremock 2.6.0更改为wiremock-standalone,这使用了应用程序的servlet-api依赖关系,基本上可以工作。

不确定这是否是正确的答案,但它确实有效。

 类似资料:
  • 我正在使用带有Apache骆驼的Spring Boot。我正在从控制器调用路由。一旦路由完成,控制就会返回控制器。我正在VerifyLimitProcess和批准限制处理器中生成响应。如果我没有在路由中提供窃听配置,控制器会按预期检索标头和正文。但如果我在路由中引入窃听,控制器会将标头和正文接收为null。如果有人指出我需要做什么,以便我可以在选择语句中引入两个处理器的窃听配置,即VerifyLi

  • 调试时,在带有的行中弹出一个NullPointerException,类为。

  • 我试图测试一个简单POST Rest调用,但存在NullPointerException。 我的RestController: 我的单元测试: 由于以下错误,此测试失败:NullPointerException,确切地说,response ResponseEntity对象为Null。 verify输出将执行以下操作: 知道为什么响应是空的吗?我为测试使用了正确的注释,因此应该注入模拟。也许我在这里

  • 我有下面的课,我试图测试。我遇到问题的方法是,因为我试图存根/模拟行为,然后在测试中验证行为。

  • 问题内容: 我正在使用pythons mock.patch并想更改每个调用的返回值。请注意,正在修补的函数没有输入,因此无法基于输入更改返回值。 这是我的代码供参考。 我的测试代码: 只是“ input”的独立于平台的版本(python 2和3)。因此,最终我将尝试模拟用户的输入。我已经尝试过使用列表作为返回值,但这并不能正常工作。 您可以看到,如果返回值无效,那么我将在此处得到一个无限循环。因此

  • 如何模拟返回已强制转换的模拟对象的方法。 试验方法。