如何将MockRestServiceServer与多个URL一起使用?

时间:2016-11-08 20:08:59

标签: junit mocking spring-test mockserver

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

  1. 致电URL#1
  2. 致电URL#1(第二次)
  3. 致电URL#2
  4. 两次调用相同的URL,然后第三次调用具有不同请求参数的同一URL。

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

    我已经尝试将这三个期望内联到我的MockRestServiceServer实例,但测试失败声称第三个URL是预期的,但它看到了第一个。似乎我要么覆盖了期望,要么就是在这里分享一些有状态的东西,这样才能使模拟服务器处于错误的状态。

    有人能告诉我一个如何正确执行此操作的示例吗?

1 个答案:

答案 0 :(得分:0)

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

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