Java 开发

junit5 下 wiremock 正确使用方式

言七墨 · 12月1日 · 2019年 · 228次已读

场景描述

通过 wiremock 方式模拟远程接口调用时,发现注解 @Rule 失效,即下图代码无效:

@Rule
public WireMockRule wireMockRule = new WireMockRule(8080);

经过查询,原来 junit5 不支持注解 @Rule,但是 junit4 是支持的。

问题解决

1、引入 wiremock 扩展包

// wiremock 扩展包
testCompile("com.github.JensPiegsa:wiremock-extension:0.4.0")

2、添加注解

在单元测试类上方引入下方注解:

@ExtendWith(WireMockExtension.class)
@WireMockSettings(failOnUnmatchedRequests = false)

3、配置 host

重新配置远程服务的 host 为 http://localhost:8080 (端口可以自定义,但是不要和使用中的端口一样)。

参考

  • https://github.com/lanwen/wiremock-junit5
  • https://stackoverflow.com/questions/51012335/how-to-replace-rule-annotation-in-junit-5
  • https://github.com/JensPiegsa/wiremock-extension
  • https://github.com/JensPiegsa/wiremock-extension/blob/master/src/test/java/com/github/jenspiegsa/wiremockextension/ExampleTest.java
0 条回应