【问题标题】:Failure rule for cucumber-jvmcucumber-jvm 的失败规则
【发布时间】:2017-04-29 10:21:08
【问题描述】:

我正在使用 cucumber-java 为 Rest API 编写测试套件。我试图使用@Rule,但是我发现黄瓜-jvm 不支持它。是否有任何选项可以为步骤失败编写规则?

我需要在断言失败时打印请求-响应(我正在断言 http 响应状态),以便了解哪里出了问题?

非常感谢任何帮助

【问题讨论】:

    标签: java rest cucumber-jvm rule


    【解决方案1】:

    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);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多