java - 没有休息模板bean的模拟请求
问题描述
我试图在集成测试中模拟休息模板请求。问题是 rest 模板不是 bean 并且使用 new 关键字创建。
restTemplate = getRestTemplate();
resttemplate.postforentity(...) // need to mock
private synchronized RestTemplate getRestTemplate() {
if (restTemplate == null) {
// set interceptors
}
return restTemplate;
}
我怎样才能模拟这个请求?
解决方案
你可以尝试使用MockRestServiceServer
.
像这样的东西:
MockRestServiceServer.MockRestServiceServerBuilder builder = MockRestServiceServer.bindTo(restTemplate);
mockServer = builder.build();
在代码的某处,像这样:
mockServer.expect(ExpectedCount.manyTimes(), requestTo(new StringContains("<some string>")))
.andRespond(withSuccess("<JSON body>"), MediaType.APPLICATION_JSON))
有很多匹配器和存根请求的方法,请阅读文档。
推荐阅读
- post - 使用 access.log 重播 POST 日志
- apache-spark - 按 ID 停止 spark 运行流
- eloquent - 我正在学习 laravel 8,但不理解这种语法是如何工作的
- java - 将 if else 重构为 Java 中的单行条件语句?
- flutter - Flutter Firestore ArrayNotContains?
- jenkins - 需要在电子邮件正文中发送测试结果,但未在 Target 文件夹中创建 emailable-report.html
- php - HTML 表单操作 url 为在子域之外复制的 php 文件抛出 404
- python - 返回具有与 dict 相同键的 dict 列表
- regex - 正则表达式集包含一个或多个单词
- javascript - 遍历对象数组并获得一个新的对象数组