我有一个返回JSON的endpoint,如下所示:
[
{"id" : 4, "name" : "Name4"},
{"id" : 5, "name" : "Name5"}
]
和DTO类:
public class FooDto {
public int id;
public String name;
}
现在,我用这种方法测试返回的json数组的长度:
@Test
public void test() {
FooDto[] foos = RestAssured.get("/foos").as(FooDto[].class);
assertThat(foos.length, is(2));
}
但是,有没有什么方法可以在不强制转换到FooDto数组的情况下完成它?类似这样:
@Test
public void test() {
RestAssured.get("/foos").then().assertThat()
.length(2);
}
有很多方法。我解决了以下问题
@Test
public void test() {
ValidatableResponse response = given().when().get("/foos").then();
response.statusCode(200);
assertThat(response.extract().jsonPath().getList("$").size(), equalTo(2));
}
使用重新假定的3.0.0
您可以简单地在身体路径中调用大小():
比如:
given()
.accept(ContentType.JSON)
.contentType(ContentType.JSON)
.auth().principal(createPrincipal())
.when()
.get("/api/foo")
.then()
.statusCode(OK.value())
.body("bar.size()", is(10))
.body("dar.size()", is(10));
解决!我以这种方式解决了它:
@Test
public void test() {
RestAssured.get("/foos").then().assertThat()
.body("size()", is(2));
}
问题内容: 我的控制器中有以下代码: 在我的RSpec控制器测试中,我想验证某个场景确实收到了成功的json响应,因此我有以下内容: 尽管在运行测试时出现以下错误: 我是否检查响应不正确? 问题答案: 您可以检查响应对象并验证它是否包含期望值: 编辑 将此更改为a 会比较麻烦。这是一种处理方法: 请注意,它不会响应,因此需要一个或真实的模型实例。
我有一个放心的回复,其中包含以下正文: 我想验证嵌套在2个数组中的状态“已接受”和原因“已通过验证”。我尝试将原因存储为列表,在此示例中进行了概述,但我收到以下错误: 代码: 有没有办法做到:
这是我在控制器中的方法,由 我希望作为我的json。 这是我的JUnit测试: 以下是控制台输出: 甚至是是一个空字符串。 有人能建议如何在我的JUnit测试方法中获取JSON,这样我就可以完成我的测试用例了。
在使用空手道框架进行API测试时,我在验证嵌套JSON响应时遇到了一些问题。 JSON响应: null def feed_cycle={item_type:'#string',title:'#string'} def feed_college_dept_branch={branch:'#string'} def feed_college={item_type:'#string',dept:'[]f
//Json响应 我想验证名称是否为REST,然后描述是否为表示状态传输,如果名称为SOAP,然后描述是否为简单对象访问协议。有超过20条类似的响应记录,我如何使用通用参数放心地完成它。
问题内容: 这是我的控制器内部的方法,其注释为 我期望作为我的json。 这是我的JUnit测试: 这是控制台输出: Even 是一个空字符串。 有人可以建议如何在我的JUnit测试方法中获取JSON,以便完成测试用例。 问题答案: 我使用TestNG进行单元测试。但是在Spring Test Framework中,它们看起来都很相似。所以我相信你的测试如下 如果要检查json键和值,可以使用js