在处理restasured时,我遇到了序列化和反序列化(POJO类)的概念来读取和验证响应。我阅读了一些教程,并根据我的回答创建了POJO类。
但是,当我在测试中使用POJO类引用时,我无法将then()块用于不同的断言。下面的细节可能会更清楚一些:
不带POJO的TestMethod:
public void listUsers() {
RestAssured.baseURI="https://reqres.in/";
Response res = RestAssured.given()
.contentType("application/json")
.queryParam("page", 2)
.when()
.get("/api/users")
.then()
.assertThat().statusCode(200).and()
.body("page", Matchers.equalTo(2)).and()
.body("total", Matchers.greaterThanOrEqualTo(1))
.body("data.email", Matchers.hasItem("george.edwards@reqres.in"))
.extract().response();
JsonPath jsonpath = new JsonPath(res.asString());
System.out.println(jsonpath.get("data[0].email"));
}
POJO的试验方法:
public void listUserswithPOJO() {
RestAssured.baseURI="https://reqres.in/";
ListUsers res = RestAssured.given()
.contentType("application/json")
.queryParam("page", 2)
.when()
.get("/api/users").as(ListUsers.class);
System.out.println(res.getData().get(1).getEmail());
}
测试等级:
@Test
public void listUsersTest() {
ReqResApi TS1 = new ReqResApi();
TS1.listUserswithPOJO();
}
在使用POJO类时,我也希望保持然后块的断言不变。当我在as(ListUser.class)之后尝试这样做时,它会给出编译错误,即ListUser类的然后()是未定义的。
在我的rest-assured测试中,是否有任何方法可以同时使用POJO类和then()块。
这是不可能的,因为这些选项的返回类型不同。
MainPojo m1 =RestAssured.given().contentType("application/json").queryParam("page", 2).when().get("/api/users")
.as(MainPojo.class)==> Return Type is ur Class, in this example Main Pojo
System.out.println(m1.getData().get(0).getFirst_name());
RestAssured.given().contentType("application/json").queryParam("page", 2).when()
.get("/api/users").then().assertThat().statusCode(200).and().body("page", Matchers.equalTo(2)).and()
.body("total", Matchers.greaterThanOrEqualTo(1))
.body("data.email", Matchers.hasItem("george.edwards@reqres.in")).extract().response();---> Return Type is Response
问题内容: 我试图将Python 3程序反向移植到2.7,但遇到了一个奇怪的问题: 根据文档,返回Unicode文本的内存流。当我尝试手动输入Unicode字符串时,它可以正常工作。为什么即使所有写入的字符串都是Unicode字符串,它也无法与模块结合使用?在什么地方来,它使得异常? (我知道我可以代替使用,但是我想知道在这种情况下怎么了) 问题答案: Python 2.7模块不支持Unicode
我想从Log4j 1.x迁移到Log4j 2.x。所以我尝试使用Log4j-1.2-api。jar,如本文所述。我的应用程序实现了org.apache.log4j.spi。LoggingEvent,但我找不到将LoggingEvent与log4j 2.x api桥一起使用的方法。我是否可以将LoggingEvent与log4j 2.2一起使用? 谢谢。
有一个只有exports子句的src/main/java/module-info.java。 有一个src/test/java/example/sometest/addertest,它具有: 到目前为止还不错。现在我使用@ExtendWith注释。 哪里 现在mvn测试给出错误 [警告].../AdderTest.java:[9,2]未导出模块中的类org.junit.jupiter.api.ex
问题内容: 这是课程: 现在,我试图从类中“反射”此方法: 问题答案: 只有一个。 另一种选择是。 其他原语也是如此。
我在Ubuntu 14.04中安装了phpbrew以使用PHP5.4。它工作得很好,但当我尝试使用composer时除外,composer会忽略phpbrew并安装与PHP5.5相关的依赖项。 有没有办法强制composer与phpbrew config兼容?我试图在我的作曲家中添加:php:“5.4”。json,但是它说这个要求在我的php版本中是不可能的。