【发布时间】:2017-04-29 10:21:08
【问题描述】:
我正在使用 cucumber-java 为 Rest API 编写测试套件。我试图使用@Rule,但是我发现黄瓜-jvm 不支持它。是否有任何选项可以为步骤失败编写规则?
我需要在断言失败时打印请求-响应(我正在断言 http 响应状态),以便了解哪里出了问题?
非常感谢任何帮助
【问题讨论】:
标签: java rest cucumber-jvm rule
我正在使用 cucumber-java 为 Rest API 编写测试套件。我试图使用@Rule,但是我发现黄瓜-jvm 不支持它。是否有任何选项可以为步骤失败编写规则?
我需要在断言失败时打印请求-响应(我正在断言 http 响应状态),以便了解哪里出了问题?
非常感谢任何帮助
【问题讨论】:
标签: java rest cucumber-jvm rule
Cucumber-jvm 有 @After 注释,您可以在其中放一些东西,但为什么不简单地在断言语句失败文本中包含响应?
我使用rest-assured 来管理我的 HTTP 请求响应。我的响应最终出现在 Response 类的对象中。为了获得完整的响应,我可能会这样编码:
response.getBody().prettyPrint()
编辑
您也指定了请求。给定 requestSpec 是我们用请求值初始化的 RequestSpecification 类的实例,我使用
requestSpec.given().log().all()
把请求变成字符串形式。
所以使用 JUnit assertTrue
assertTrue("REST service x Status Code =" + response.getStatusCode() +
", for request = " + requestSpec.given().log().all() + ",\n response = " +
response.getBody().prettyPrint(), response.getStatusCode() == 200);
【讨论】: