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

Sjo*_*ing 5 spring integration-testing spring-test-mvc mockrestserviceserver

我使用 MockRestServiceServer 来模拟 http 响应。在特定场景中,我两次调用端点并希望第二次得到不同的响应。

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

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

Sjo*_*ing 4

经过一番研究后我发现了它:

当实例化 MockRestServiceServer 时,它默认获取 UnorderedRequestExpectationManager。通过 SimpleRequestExpectationManager 中的 Builder 更改此设置添加了对按定义顺序添加多个响应的支持。

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