REST サービスのテストにはREST-Assuredを使用することにしました。結果は (ほとんど) JSON および XML ドキュメントです。JSON を確認するには、JSONassertが非常に役立ちます。
体の一部を比較するのではなく、応答の完全な体を比較します。したがって、REST-Assured のドキュメントの例は、応答本文の一部を抽出するため、あまり役に立ちません。
現在、私は体を抽出し、その後体を比較しています:
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()
ここで、REST-AssuredのメソッドにJSONAssert.assertEquals
と Hamcrestを含めて、失敗した検証のログを有効にする方法を考えています。assertThat
given()
完全なソースは、Eclipse Winery のリポジトリで入手できます。