Java:在单元测试中模拟http/https调用
我试图在我的代码中设置单元测试,其中我想模拟到外部web服务的rest调用。我知道两种方法:Java:在单元测试中模拟http/https调用,java,unit-testing,junit,powermock,wiremock,Java,Unit Testing,Junit,Powermock,Wiremock,我试图在我的代码中设置单元测试,其中我想模拟到外部web服务的rest调用。我知道两种方法: 存根使用PowerMock调用外部webservice以返回模拟响应对象的方法 对于单元测试,将web服务的主机地址更改为指向localhost,然后使用WireMock连接到localhost并发送响应 我想做的是不改变(2)中的主机地址,让WireMock(或任何其他第三方库)截获对给定主机的调用,并根据调用发送响应 换句话说,我希望以这样一种方式配置WireMock:例如,如果我的代码正在调用Wi
换句话说,我希望以这样一种方式配置WireMock:例如,如果我的代码正在调用WireMock,那么WireMock将拦截该调用,并使用我配置的东西进行响应。(基本上是stub www.google.com)。不幸的是,WireMock无法做到这一点 你有三个选择(我能想到):
谢谢Tom,让我尝试一下,然后再回到这个线程:)为提示喝彩Tom,我已经使用方法3实现了这一点。Tom-是否有某种方法可以重定向到端口,以便端口80的请求也转到wiremock端口?您可以使用
--port
CLI参数在端口80上运行wiremock(如果您使用的是Unix风格的操作系统,则需要sudo
此选项)。或者,如果您运行的是Linux,则可以使用IPTables转发端口,如果您不想以root用户身份运行WireMock,这是一个不错的选项。