http://wiremock.org/
WireMock 是基于 HTTP 的模拟器。它具备 HTTP 响应存根、请求验证、代理/拦截、记录和回放功能。
当开发人员的开发进度不一致时,可以依赖 WireMock 构建的接口,模拟不同请求与响应,从而避某一模块的开发进度。
安装WireMock 服务端
https://hub.docker.com/r/holomekc/wiremock-gui
1 2
| docker pull holomekc/wiremock-gui docker run -d -p 30080:8080 --name wiremock holomekc/wiremock-gui
|
待服务运行成功后,输入http://127.0.0.1:30080/__admin/webapp ,登录可视化页面。
引入WireMock依赖
有标准的和独立的两种版本,根据需要自行引入。
1 2 3 4 5 6
| <dependency> <groupId>com.github.tomakehurst</groupId> <artifactId>wiremock-jre8</artifactId> <version>2.25.1</version> <scope>test</scope> </dependency>
|
添加模拟请求映射
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
import static com.github.tomakehurst.wiremock.client.WireMock.*;
public class MockServer {
public static void main(String[] args) throws IOException { configureFor(30080); removeAllMappings();
mock("/order/1","01"); }
private static void mock(String url,String file) throws IOException { ClassPathResource resource=new ClassPathResource("mock/response/"+file+".txt"); String content= StringUtils.join(FileUtils.readLines(resource.getFile(),"UTF-8").toArray(),"\n"); stubFor(get(urlPathEqualTo(url)).willReturn(aResponse().withBody(content).withStatus(200))); } }
|
在IntelliJ中添加静态包导入的方法
在Eclipse中,可以配置某些最喜欢的”类,当调用代码完成时,将查找这些类以查看是否可以为方法添加静态导入(这在首选项> Java>编辑器>下内容辅助>收藏夹)。
在IntelliJ中,通过File -> Settings -> Code Style -> Java -> Imports,添加需要经常引入的静态包方法。
这里在引入wiremock.client相关方法时,设置了IntelliJ中的静态方法。
参考文献