2017-08-17 71 views
2

我决定使用REST-Assured来测试REST服务。结果(主要)是JSON和XML文档。为了检查JSON,我发现JSONassert非常有帮助。将REST-Assured的ifValidationFails与JSONAssert一起使用

我不想比较身体的部位,但是完整身体的一个反应。所以,examples at REST-Assured's documentation不是很有帮助,因为它们提取响应主体的一部分。

目前,我提取的身体和事后比较正文:

public void assertGet(String restURL, String fileName) throws Exception { 
    String expectedStr = readFromClasspath(fileName); 
    final String receivedStr = given() 
      .log() 
      .ifValidationFails()() 
      .accept(getAccept(fileName)) 
      .get(callURL(restURL)) 
      .then() 
      .log() 
      .ifValidationFails() 
      .statusCode(200) 
      .extract() 
      .response() 
      .getBody() 
      .asString(); 
    if (isXml(fileName)) { 
     org.hamcrest.MatcherAssert.assertThat(receivedStr, CompareMatcher.isIdenticalTo(expectedStr).ignoreWhitespace()); 
    } else { 
     JSONAssert.assertEquals(
       expectedStr, 
       receivedStr, 
       true); 
    } 
} 

的问题是,ifValidationFails()没有任何意义,因为asString()总是成功的。

现在我不知道如何可以包括JSONAssert.assertEquals和Hamcrest的assertThat到的​​方法REST保证的对验证失败启用日志记录。

完整的数据来源于Eclipse Winery's repository

回答

0

我可以建议您评估Karate - 因为它提供了您正在寻找的内容 - 可以在一个步骤中比较完整的有效载荷。而且你可以做到这一点,而无需锁定任何第三方库。它支持JSON和XML。

免责声明 - 我是开发者。