【发布时间】:2019-12-18 13:42:06
【问题描述】:
我正在发布简单的数据,例如
{
"title" : "test Title"
}
到(顺其自然)/posts uri,例如 smth like
RestAssured.baseURI = "http://localhost";
RestAssured.basePath = "/posts";
given()
.contentType("application/json")
.body("{\n" +
" \"title\": \"test Title\"\n" +
"}")
.when()
.post("")
.then().statusCode(201)
// .and(Verify that post created);
}
我可以验证,body 不为空
.body(notNullValue())
或检查,响应中的该字段具有我们正在设置的值,例如
.body("title", equalTo("test Title"))
但我不确定,它的最佳/正确方式。 那么,问题是:如何验证该实体是在发布后使用 restAssured 创建的?
【问题讨论】:
-
嗨,这一切都取决于服务器端的实现——它什么都不做并返回 200。如果这是为了测试,为什么不做一个“get”来验证是否创建了实体。
-
是的,它用于测试,并且 get 似乎很简单。只是想知道,如何在一个请求(帖子)的边界内执行此操作,仅此而已。
-
由于代码在服务器端执行,客户端无法知道它是否真的完成了它的工作——正如预期的那样,必须对数据库进行查询以进行验证,或者一个列表/ get call to verify - 好像创建代码失败,它不会获取被请求创建的实体。我可以创建一个接受 POST/create 请求的服务器 APi,并在代码中返回一个具有我喜欢的任何状态的响应实体。
标签: java json rest-assured