在状态代码断言失败时打印响应正文,并已重新保证

我正在使用Hamcrest对REST API进行单元测试。

当我发送请求时,我经常检查这样的状态代码:200

public void myTest() {
    url = "route/to/my/rest/api/";
    secured().when().get(url).then().statusCode(200);
}

但是当我得到错误的代码状态时,我只得到一个断言错误。有没有办法在状态代码不匹配时自动转储响应正文(包含错误)?

方法:secured()

public RequestSpecification secured() {
    return given().header("Authorization", "Bearer " + getAuth());
}

答案 1

正如我在评论中提到的,我使用了以下内容

secured().when().post(url).then().log().ifValidationFails(LogDetail.BODY).statusCode(200);

您可以在文档中找到源代码


答案 2

您可以在测试失败时向断言中添加消息:

.statusCode(describedAs("The test fails because ...", is(200)))

推荐