问题描述: 在Android项目中,使用WireMock进行单元测试时,发现在JUnit规则和非JUnit的Java使用方式下,WireMock并不起作用。
解决方法:
androidTestImplementation 'com.github.tomakehurst:wiremock-standalone:2.27.2'
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Rule
public WireMockRule wireMockRule = new WireMockRule(8080); // 指定WireMock使用的端口号
@Test
public void exampleTest() {
// 在这里编写你的测试代码
}
}
这样,在JUnit测试运行时,WireMock规则会自动启动并监听指定端口。
public class ExampleTest {
private WireMockServer wireMockServer;
@Before
public void setup() {
wireMockServer = new WireMockServer(8080); // 指定WireMock使用的端口号
wireMockServer.start();
}
@After
public void teardown() {
wireMockServer.stop();
}
@Test
public void exampleTest() {
// 在这里编写你的测试代码
}
}
这样,在非JUnit的Java使用方式下,手动启动和停止WireMock服务器。
注意:
PortUtils.findFreePort()
方法来查找可用的随机端口号。
上一篇:Android WiFi直接请求Peers不会找到任何附近的对等设备。
下一篇:Android with Firebase :DataSnapshot.getValue()抛出的异常为java.lang.IllegalArgumentException。