Rest 请放心-使用ResponseSpecBuilder会导致提取的响应为空
如果我删除 .specresponseSpec 从我的电话中可以看出,FOO的回复很好。如果包含生成器,即使测试通过,响应也会打印一个空字符串。有人知道为什么或者如何解决这个问题吗?我想使用生成器并打印通过测试的响应Rest 请放心-使用ResponseSpecBuilder会导致提取的响应为空,rest,response,extract,builder,rest-assured,Rest,Response,Extract,Builder,Rest Assured,如果我删除 .specresponseSpec 从我的电话中可以看出,FOO的回复很好。如果包含生成器,即使测试通过,响应也会打印一个空字符串。有人知道为什么或者如何解决这个问题吗?我想使用生成器并打印通过测试的响应 public void getCirclesId() { String endpoint = "getCirclesId"; String url = baseUrl + resourcePath + "/" + circleId;
public void getCirclesId()
{
String endpoint = "getCirclesId";
String url = baseUrl + resourcePath + "/" + circleId;
RequestSpecification given = given().header("Authorization", RestTest.BEARER_TOKEN);
ResponseSpecBuilder specBuilder = new ResponseSpecBuilder();
specBuilder.expectBody("features.priceMonth", is("5.00"));
specBuilder.expectBody("features.priceYear", is("50.00"));
Response response = JsonTest.executeRequestWithSpec(given, url, resource, endpoint, JsonTest.HttpType.GET, specBuilder);
}
您是否正在使用最新版本的REST Assured 2.3.0?否则,我建议您升级到此版本。2.0中的响应规范存在一些问题
public static Response executeRequestWithSpec(RequestSpecification given, String url, String resource, String endpoint, HttpType type, ResponseSpecBuilder builder)
{
Response response = null;
try {
switch (type) {
case GET:
response = executeGetRequestWithSpec(given, url, builder);
break;
case POST:
response = executePostRequestWithSpec(given, url, builder);
break;
case PUT:
response = executePutRequestWithSpec(given, url, builder);
break;
case DELETE:
response = executeDeleteRequestWithSpec(given, url, builder);
break;
}
System.out.println(resource + " - " + endpoint + ": " + response.print());
} catch (AssertionError e) {
RestTest.failCount++;
System.err.println(resource + " - " + endpoint + " Error: " + e.getMessage());
}
return response;
}
private static Response executeGetRequestWithSpec(RequestSpecification given, String url, ResponseSpecBuilder builder)
{
ResponseSpecification responseSpec = builder.build();
Response response = given.when().get(url + ".json").then().assertThat().statusCode(200).spec(responseSpec).extract().response();
System.out.println("FOOOO" + response.print());
return response;
}