- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
在测试 RestClient-Implementation 时,我想模拟一个 RestClientException,该实现 f.e. 中的某些 RestTemplate-methods 可能会抛出该异常。删除方法:
@Override
public ResponseEntity<MyResponseModel> documentDelete(String id) {
template.setErrorHandler(new MyResponseErrorHandler());
ResponseEntity<MyResponseModel> response = null;
try {
String url = baseUrl + "/document/id/{id}";
response = template.exchange(url, DELETE, null, MyResponseModel.class, id);
} catch (RestClientException ex) {
return handleException(ex);
}
return response;
}
我怎样才能做到这一点?
我是这样定义模拟服务器的:
@Before
public void setUp() {
mockServer = MockRestServiceServer.createServer(template);
client = new MyRestClient(template, serverUrl + ":" + serverPort);
}
最佳答案
您可以从 MockRestServiceServer
测试抛出运行时异常,尽管从 Spring 5.0.0.RC4 开始,这个类不是为它设计的(这意味着它可能不适用于更复杂的用例):
RestTemplate yourApi;
MockRestServiceServer server = MockRestServiceServer.createServer(yourApi);
server.expect(requestTo("http://..."))
.andRespond((response) -> { throw new ResourceAccessException(
new ConnectException("Connection reset")); });
它似乎在测试中起作用:
RestTemplate
调用,我没想到会连续出现两次异常; MockRestSeriviceServer
(更具体地说,SimpleRequestExpectationManager
)在重放第二个期望时抛出 IllegalStateException
。
关于java - 如何使用 MockRestServiceServer 测试 RestClientException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42577392/
我们正在使用 RestTemplate 来消费外部休息服务。我们的项目中有很多不同类型的服务,所有这些服务都使用不同的策略进行测试,例如模拟休息模板和模拟我们的通信对象。 我们在测试用例中使用了以下代
我会自己回答我的问题,但我对我的解决方案不满意,所以如果有现成的便利类/方法做同样的事情,请告诉我。 问题陈述 我正在使用 Spring MockRestServiceServer在单元测试中模拟 R
我正在尝试为我的 spring 集成流程编写集成测试。我想用MockRestServiceServer 记录传出请求(使用 http:outbound-gateway)并将其匹配到 Rest 服务器。
我正在使用 MockRestServiceServer 在我的 REST Controller 上编写某种集成测试来模拟后端行为。我现在想要实现的是模拟来自后端的非常慢的响应,这最终会导致我的应用程序
Spring 4 引入了 AsyncRestTemplate,但我没有看到像 MockRestServiceServer 这样的工具用于此模板。有什么方法可以使用模拟服务器为 AsyncRestTem
我需要在 MockRestServiceServer 的实例上配置多个期望。期望是针对两个不同的 URL: 调用 URL #1 调用 URL #1(第二次) 调用 URL #2 同一个 URL 被调用
最近我开始使用 Spring 的 MockRestServiceServer 来验证我在测试中基于 RestTemplate 的请求。 当它用于简单的 get/post 请求时——一切都很好,但是,我
我有一个 Orchestrator Spring Boot 服务,它向外部服务发出多个异步休息请求,我想模拟这些服务的响应。 我的代码是: mockServer.expect(requestTo("
在我们的项目中,我们使用具有非常不寻常的 REST API 的外部系统。url 中包含方括号: api/v1/series?match[]=up 现在我们想要测试我们自己的 REST api,只是为了
我正在使用 Spring Integration 开发一个应用程序,该应用程序使用 HttpRequestExecutingMessageHandler 类定期向 REST 服务发出后端请求。我想在测
在测试 RestClient-Implementation 时,我想模拟一个 RestClientException,该实现 f.e. 中的某些 RestTemplate-methods 可能会抛出该
我使用 MockRestServiceServer 来模拟 http 响应。在特定场景中,我两次调用端点并希望第二次得到不同的响应。 但是当我写下第二个期望时,它就像覆盖了我的第一个期望。 如何为同一
如何告诉 MockRestServiceServer 在 junit @Test 期间期望特定的 json 内容? 我以为我可以期待一个 json 字符串,如下所示:.andExpect(conten
我的应用程序序列化各种模型并通过 HTTP 请求将它们发送给第三方。 我想根据集成测试将请求正文反序列化为这个或那个模型,然后对其进行断言。看起来有些人可能会实现自己的 RequestMatcher
我正在使用 MockRestServiceServer 模拟外部网络服务 xml 响应。这已经可以正常工作了,但是我怎样才能在响应中模拟 http header ,而不仅仅是响应正文? @Mo
我正在使用 Spring Boot 2.0.6 和 Java 10。我执行了以下服务,该服务仅使用 RestTemplate 访问外部 REST API。 @Service @Slf4j public
我正在尝试编写一个 JUnit 测试用例来测试辅助类中的方法。该方法使用 REST 调用外部应用程序,我试图在 JUnit 测试中模拟的正是这个调用。 辅助方法使用 Spring 的 RestTemp
假设我正在为 REST 服务 A 编写 Spring 集成测试。该服务依次访问另一个 REST 服务 B 并获取要访问 REST 服务 C 的 URI 列表。这是一种自动发现模式。我想使用 MockR
我有一个简单的 Controller ( CODE ) @RestController @RequestMapping("/profiles" , produces = [MediaType.APPL
我已经测试了一个验证 url 的 url 类 class ValidateUrl { public Integer validateUrl(String url, int timeOut) t
我是一名优秀的程序员,十分优秀!