opt*_*lic 4 okhttp mockwebserver
我在测试期间使用 okhttp 来模拟我的 http 响应。
//Create a mock server
mockWebServer.start(8080)
mockWebServer.enqueue(MockResponse().setBody("").setResponseCode(HttpURLConnection.HTTP_OK))
Run Code Online (Sandbox Code Playgroud)
然而,这对每条路径的响应都是OK。
如何模拟特定的 url 而不是全部?
使用调度程序
Dispatcher dispatcher = new Dispatcher() {
@Override
public MockResponse dispatch(RecordedRequest request) {
switch (request.getPath()) {
case "/get":
return new MockResponse().setResponseCode(200).setBody("test");
}
return new MockResponse().setResponseCode(404);
}
};
mockBackEnd.setDispatcher(dispatcher);
Run Code Online (Sandbox Code Playgroud)
上面可以写在你的测试方法中。您可以在那里设置一堆 URL 条件。
模拟网络服务器可以启动一次,如下所示:
public static MockWebServer mockBackEnd;
@BeforeAll
static void setUp() throws IOException {
mockBackEnd = new MockWebServer();
mockBackEnd.start();
}
@AfterAll
static void tearDown() throws IOException {
mockBackEnd.shutdown();
}
Run Code Online (Sandbox Code Playgroud)
用于@DynamicPropertySource更改模拟服务器主机/端口的任何属性。
| 归档时间: |
|
| 查看次数: |
3823 次 |
| 最近记录: |