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

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

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

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

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

最佳答案

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

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

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

关于spring - 如何使用 spring 的 MockRestServiceServer 模拟同一请求的多个响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51364688/

相关文章:

java - Spring4 MVC 将枚举序列化为带引号的字符串

java - Spring Boot @RequestBody 没有完全复制参数

spring - 对 API 进行速率限制(spring MVC)

automated-tests - 关于集成测试的好书或其他资源?

ruby-on-rails - 为什么我的 session 在使用 PerformanceTest 而不是 IntegrationTest 时会过期?

java - ElasticSearchTestCase:使用ESIntegTestCase创建客户端实例时

spring-test - MockMvc WebAppConfiguration : Load servlet mappings in web. xml

java - Spring Boot 测试无法识别 servlet

Spring Annotation @WebMvcTest 在具有 Jpa 存储库的应用程序中不起作用

集成测试期间未由 gradle 替换的 spring boot 值