我试着用模拟服务器开始简单的测试。我使用依赖关系:
testCompile group: 'org.mock-server', name: 'mockserver-netty', version: '5.6.1'我已经从指南中拿出了测试示例。我的测试很简单:
public class MockServerTest {
private static ClientAndServer mockServer;
@BeforeClass
public static void startServer() {
mockServer = startClientAndServer(1080);
}
private void simple() {
new MockServerClient("127.0.0.1", 1080)
.when(
request()
.withMethod("GET")
.withPath("/do"),
exactly(1)
)
.respond(
response()
.withStatusCode(200)
.withHeaders(
new Header("Content-Type", "application/json; charset=utf-8"),
new Header("Cache-Control", "public, max-age=86400"),
new Header("Set-Cookie","SESSION=Njg1Mjg4NWQtZjRhOS00MDZhLWJhOGQtZmFmNWIzZjRmYTI4; Max-Age=1800; Expires=Wed, 4 Sep 2019 17:09:58 +0400; Path=/; HttpOnly; SameSite=Lax\n")
)
.withDelay(TimeUnit.SECONDS,1)
);
}
private org.apache.http.HttpResponse hitTheServerWithGetRequest(String page) {
String url = "http://127.0.0.1:1080/"+page;
HttpClient client = HttpClientBuilder.create().build();
org.apache.http.HttpResponse response=null;
HttpGet get = new HttpGet(url);
try {
response=client.execute(get);
} catch (IOException e) {
throw new RuntimeException(e);
}
return response;
}
@Test
public void simpleTest() {
simple();
HttpResponse resp = hitTheServerWithGetRequest("do");
new MockServerClient("localhost", 1080).verify(
request()
.withMethod("GET")
.withPath("/do"),
VerificationTimes.exactly(1)
);
}
@AfterClass
public static void stopServer() {
mockServer.stop();
}
}但这个测试不管用。它开始,但从未结束。在我启动测试之后,我可以使用Postman完成请求,然后在控制台中看到日志并获得响应--没有找到(但是必须对指定的标头没有问题)。我的代码o与mockserver-netty有什么问题?
发布于 2022-11-21 09:26:04
试着检查您的响应头,预期的响应头应该匹配,否则它将返回错误404。
https://stackoverflow.com/questions/57800606
复制相似问题