我是API测试,我注意到RestAssuredMatchers库中没有任何负面的匹配器。我的意思是:
例如:
码:
Response response = expect().body("status",equalTo("success")).given()
.contentType("application/json").with()
.body(request).when().post(server);
在这里我基本上用这个“请求”体来说,期望响应中的状态键等于“成功”。
从这里我可以提取状态代码,以确保这是一个成功的响应形式服务器,并作出积极的断言
码:
int statusCode = response.getStatusCode();
Assert.assertTrue(statusCode == 200, "status code should have been 200");
所以这是我的问题所在:
是否有图书馆或某种方式我可以做负面断言和/或期望,例如:
码:
do().not().expect().body("status",equalTo("success")).given()
.contentType("application/json").with()
.body(request).when().post(server);
int statusCode = response.getStatusCode();
or RestAssured.assertFalse(statusCode == 404);
等等...
有人可以帮忙吗?
因此,找出RestAssured帖子的参数不是json数据格式,而是将json有效负载转换为字符串。因此,您可以通过转换为字符串然后执行包含...来执行否定断言,然后将其包装在断言周围。这是一个代码示例:
码:
Response responseLiheap = RestAssured.given().contentType("application/json").with()
.body(requestString).when().post(server);
Assert.assertFalse(responseLiheap.asString().contains("Whatever_it_should_not_contain"));
如果您想亲自检查响应,可以通过捕获服务器发回的数据来打印响应:
码:
ResponseBody<?> body = responseLiheap.getBody();
logger.info("Response:--->" + body.asString());
你可以做一个sysout或像我一样,使用记录器,只需从这些数据中读取一个自己的健全检查。
尝试使用Hamcrest Library 1.3。这有测试负面情景的匹配器列表。