使用 WireMock 我们如何验证给定 url 的请求尚未发出?

问题描述 投票:0回答:2

通过以下单元测试,我可以轻松测试是否已发出特定 url 的请求。有没有办法做相反的事情,验证是否未发出特定 url 的请求?

即验证是否已提出请求:

stubFor(post(urlEqualTo("/login")));

webclient.submit(testLogin);

verify(postRequestedFor(urlMatching("/login")

我想要做什么 - 验证是否未提出请求:

stubFor(post(urlEqualTo("/login")));

webclient.submit(testLogin);

verify(postRequestedFor(urlNotMatching("/login")
java wiremock
2个回答
38
投票

verify(exactly(0), postRequestedFor(urlEqualTo("/login")));

基本上检查是否拨打了 0 次电话。 阅读更多相关内容。参见这里


0
投票

上面的回复有效。对于更复杂的断言,WireMock Admin REST API 允许检索日志中的所有请求 - GET: /__admin/requests。在你的单元测试中,例如使用本机 Java 库 JUnit 规则或 Testcontainers 模块,您可以:

  1. 通过测试规则配置新实例,或执行 删除: /__admin/requests 通过 REST API 请求
  2. 运行您拥有的任何测试逻辑
  3. 调用 GET: /__admin/requests REST API 检索请求列表
  4. 处理此列表以查看 WireMock 实际收到的内容以及它是如何匹配的
© www.soinside.com 2019 - 2024. All rights reserved.