2

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を含めて、失敗した検証のログを有効にする方法を考えています。assertThatgiven()

完全なソースは、Eclipse Winery のリポジトリで入手できます。

4

1 に答える 1