如何使用Spring的MockRestServiceServer模拟相同请求的多个响应?

时间:2018-07-16 14:56:00

标签: spring integration-testing spring-test-mvc mockrestserviceserver

我使用MockRestServiceServer模拟http响应。在特定情况下,我两次呼叫一个端点,第二次想要一个不同的响应。

但是当我写第二个期望时,就像它覆盖了我的第一个期望。

一个人如何为同一请求编写多个响应?

2 个答案:

答案 0 :(得分:2)

经过一些研究,我找到了它:

实例化MockRestServiceServer时,默认情况下会获取UnorderedRequestExpectationManager。通过在SimpleRequestExpectationManager中通过Builder进行更改,增加了对按定义顺序添加多个响应的支持。

private MockRestServiceServer createMockServerBy(Class<? extends 
RestTemplate> requiredType) {
    RestTemplate template = context.getBean(requiredType);
    return MockRestServiceServer.bindTo(template).build(new 
    SimpleRequestExpectationManager());
}

答案 1 :(得分:0)

您尝试过WireMock吗?它很棒,并提供了许多模拟API的功能。看看http://wiremock.org/