junit - 如何使用具有多个 URL 的 MockRestServiceServer?

标签 junit mocking spring-test mockserver

我需要在 MockRestServiceServer 的实例上配置多个期望。期望是针对两个不同的 URL:

  • 调用 URL #1
  • 调用 URL #1(第二次)
  • 调用 URL #2

  • 同一个 URL 被调用两次,然后第三次调用具有不同请求参数的同一个 URL。

    我有一个负载平衡的 RestTemplate 实例可以注入(inject)到我的测试中,我将它传递给 MockRestServiceServer.createServer()。

    我试图将这 3 个期望值内联到我的 MockRestServiceServer 实例中,但测试失败,声称第 3 个 URL 是预期的,但它看到了第一个。似乎我要么覆盖了期望,要么在这里共享了一些有状态的东西,使模拟服务器保持在错误的状态。

    谁能告诉我如何正确执行此操作的示例?

    最佳答案

    如果您在 Mock Server 中不使用默认的期望管理器,则可以解决您的问题 org.springframework.test.web.client.MockRestServiceServer#MockRestServiceServer :它接受 org.springframework.test.web.client.RequestExpectationManager 的参数.

    您可以传递这种类型:org.springframework.test.web.client.UnorderedRequestExpectationManager

    关于junit - 如何使用具有多个 URL 的 MockRestServiceServer?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40495531/

    相关文章:

    java - JUnit 测试 : Improvement to test case, 测试数组列表的长度?

    java - 如何重构方法以使其更易于测试

    java - 如何使模拟方法返回相同的模拟

    c# - 模拟的 UserManager 在测试中并没有真正按预期工作

    java - 如何从 org.springframework.test.web.servlet.ResultActions 中提取显式内容

    Spring ,webflux : The getRemoteAddress method of the ServerHttpRequest object returns null when request performed from WebTestClient

    java - 如何为具有 topComponents 成员变量的类编写 junit 测试?

    java - 抽象类中实现的单元测试方法,没有具体实现

    unit-testing - Mockito.thenReturn(...) 不工作

    java - 测试类的自定义过滤器链?