【发布时间】:2019-12-11 04:57:58
【问题描述】:
我正在尝试通过以下方式使用MockRestServiceServer 模拟 POST 方法:
MockRestServiceServer server = bindTo(restTemplate).build();
server.expect(requestTo("/my-api"))
.andExpect(method(POST))
.andRespond(withSuccess(expectedResponce, APPLICATION_JSON));
问题:如何在此设置中验证请求正文?
我浏览了the documentation 和一些示例,但仍然无法弄清楚它是如何完成的。
【问题讨论】:
-
为什么要检查请求正文?这是输入数据,不应验证。只是拼写错误,您的意思是响应正文吗?
-
@IgorKhvostenkov 这是一个 POST 请求,这意味着它发送一条数据。我想验证发送的信息是否正确。
-
我不认为你做对了,如果你正在尝试验证请求正文,你只需要测试你是如何创建正文的,而不是模拟 Api 并测试你发送的内容那里...
-
无论是 GET 还是 POST,这都无关紧要。从概念上讲,测试您手动定义为正确或错误但不是由生产代码决定的东西是很奇怪的。您可以使用@user7294900 提出的方法,但更多的是缩小模拟范围或更精确的触发器,而不是验证您的生产代码。
-
@IgorKhvostenkov 也许“验证”在这里不是最好的词。让我详细说明。我正在编写集成测试。我不想从测试中获得真正的 API,而是在模拟 API。但如果我不检查请求正文,模拟 API 将为所有请求返回成功响应,这是我不想要的。
标签: java spring spring-boot junit spring-rest