如何在Rest Assured的链式方法中添加自定义断言消息?
Rest Assured链式调用添加自定义断言消息方法
完全可以在Rest Assured的链式断言环节插入自定义说明,无需依赖System.out.println()输出提示。
基础用法:直接在断言方法后追加自定义消息参数
Rest Assured绝大多数断言方法都提供了带自定义描述的重载,只需要在原有断言参数的最后增加字符串类型的自定义消息即可,示例如下:
given().spec(requestSpecBuilder).when().get(commentsEndPoint).then() .spec(responseSpecification).assertThat() // 最后一个参数即为自定义断言说明,断言失败时会同步输出 .contentType(ContentType.JSON.withCharset("UTF-8"), "接口返回内容类型不符合预期,应为UTF-8编码的JSON格式");
其他常用断言场景也可以用同样的方式添加自定义消息,比如Body字段校验:
// 校验data.id字段值为123,失败时输出自定义提示 .body("data.id", equalTo(123), "返回的data.id字段值和预期不符")
进阶用法:动态插入实际值到自定义消息
如果需要把接口实际返回的内容插入到错误消息中,提升排查效率,可以使用Hamcrest提供的describedAs方法包装匹配器,支持占位符插入实际参数:
.body("total", // 占位符%0会取后面传入的实际返回的total值填充到消息中 describedAs("返回的总条数应该大于10,实际值为 %0", greaterThan(10), response.path("total")) )
以上两种方式的自定义消息仅会在断言失败时输出,不会在请求成功时产生冗余日志,符合测试代码的日志规范。
内容的提问来源于stack exchange,提问作者McCruck
相关产品推荐
相关产品推荐

