【发布时间】:2015-01-20 07:40:51
【问题描述】:
我有以下代码可以测试我的 RESTful API:
given().baseUri("http://...").get("/categories/all")
.then()
.body(
"results", not(empty())
);
API 返回以下响应:
{
"error": {
"type": "NotFoundException"
}
}
并且我希望测试失败以获得这样的响应。但是测试通过了。
如何修改测试以使其失败?只有当 API 返回一个在“结果”键中包含非空数组的对象时,它才应该通过。当“results”键不存在、包含空数组或包含不是数组的内容时,它应该会失败。
【问题讨论】:
-
为什么不返回一个列表,并使用 .isEmpty() 检查?
-
请注意:如果您想成为 RESTful,请不要在正文响应中返回错误代码,而是使用标准 HTTP return codes(
Not Found是404) -
@Stultuske 我不完全理解你的评论。我应该从 REST API 返回一个列表吗?但是 API 不能正常工作,它没有返回一个列表,我想检查一下。
-
很大程度上取决于您如何实现它。如果你不想更改代码,你仍然可以去 Arrays.asList(myArrayName);然后调用 isEmpty()
-
@ThanksForAllTheFish 我知道 :) 。我确实返回了 404 响应代码。响应内容仅包含附加信息。但在我的测试中,我还是想检查“结果”键。
标签: java json rest rest-assured