当前位置: 首页 > 知识库问答 >
问题:

将域临时解析为本地主机,以便在Spring中进行测试

东门翰
2023-03-14

使用Spring启动,我构建了一个应用程序,该应用程序对外部远程服务执行HTTP请求。对于测试,我想模拟这个外部服务,而不是调用真正的服务。当运行完整的端到端测试时,代码仍然执行HTTP请求,但我希望它调用我的模拟服务器(我可以在其中检查调用是否正确)。

假设调用了api.example.com。我可以使用Java/Spring/JBehave以编程方式临时向主机文件或JVM中的等效行为添加一行,以便api.example.com解析为localhost吗?

共有2个答案

公孙琛
2023-03-14

我会说,你可以使用模拟服务器,并使用Restasured框架,通过它可以跟踪调用并重定向到模拟服务器。

岳池暝
2023-03-14

解决方案 1:Spring型材

假设api.example.com在您的Springapplication.properties中定义,最常见的行为是使用与Spring配置文件关联的Spring boot回退机制覆盖此属性。

例如,假设api.example.com与属性api.host键相关联,您可以在src/test/Resources下创建一个Spring profile集成测试及其关联的应用程序属性文件application-integration-testing.properties。该文件将包含api.host=localhost,而生产application.properties包含api.host=api.example.com

您可以使用@ActiveProfiles(“集成测试”)注释测试,瞧,api.host值将是本地主机,但仅用于测试。

解决方案2:自定义DNS解析器

似乎不可能有一个具有默认实现(HttpURLConnection)的自定义解析器。您可以使用<code>RestTemplate

解决方案3:模拟Rest模板

您可以使用MockRestServiceServer使用<code>RestTemplate

 类似资料:
  • 问题内容: 有什么办法告诉您的本地主机它可以进行跨域Ajax调用吗? 我需要进行测试。 如果是浏览器特定的问题,我正在使用谷歌浏览器。 干杯。 问题答案: 不,绝对不可能。如果用户可以禁用它,那么它将成为具有恶意或可疑意图的人的主要目标,并且像其他任何易于开发的软件一样。要制作安全的软件,而又不能在更具吸引力的目标上作画,已经足够困难。 实现跨域Ajax的唯一方法是通过服务器端脚本路由请求。 编辑

  • 我将使用托管进行实时测试,但我想保护访问并防止搜索引擎索引。例如(服务器目录结构)public_html: _private _bin _cnf _log _...(更多默认目录托管) testPublic css 图像 index.html < 我想index.html是可见的每个人和所有其他目录(除了testPublic)是隐藏的,受保护的访问和搜索引擎不索引。 目录"testPublic"我

  • 问题内容: 我需要能够记录反应时间,从屏幕加载或问题标签刷新到用户点击数字按钮。我找不到Apple提供的有关此文档的帮助。还不够准确,我至少需要测量毫秒。似乎受到游戏设计师的青睐,因为它在内部是一致的,但不适用于此应用程序,因为我需要在设备之间比较数据,并且取决于CPU的时间。这个Apple Dev Q&A 建议使用和,但是它在obj- c中,我找不到快速的等效文档。 是否有一个快速的版本,并说我

  • 我习惯了JAX-RS,并且希望在使用Spring MVC发送请求和处理响应时也有类似的舒适感,即在我的测试中的客户端。 在服务器(控制器)端,我对自动转换非常满意,也就是说,只返回一个对象实例并在发送给客户机的结果HTTP响应中包含JSON就足够了。 您能告诉我如何在这些代码片段中将<code>objectInstance 为了比较,使用JAX-RS客户端API,我可以使用<code>reques

  • 问题内容: 我有DNS服务器IP地址和主机名。 使用Java,如何使用该IP地址和主机名找到该DNS服务器返回的主机名的IP地址? 问题答案: 看看和方法。

  • 问题内容: 如果我在Linux机器上运行MySQL,那么如果连接到本地主机,运行查询是否比连接到解析为同一机器的域要快?这是从Java使用JDBC获得的。 问题答案: 具有绝对最佳性能的选项是直接使用localhost上任何接口的IP地址- 回送接口(127.0.0.1)或任何其他接口。数据包将实际上以CPU速度通过回送接口(无论实际使用哪个IP)进行路由。 但是,有三个原因比其他接口的IP更喜欢