簡體   English   中英

放心-使用ResponseSpecBuilder導致提取的響應為空

[英]Rest Assured - Using ResponseSpecBuilder Results in Empty Extracted Response

如果我移除

.spec(responseSpec)

從我的電話中,響應在“ FOO”上打印良好。 如果我包括構建器,則響應將打印一個空字符串(即使測試通過了)。 有人知道為什么,或者如何解決這個問題? 我想使用構建器並打印通過測試的響應。

public void getCirclesId()
    {
        String endpoint = "getCirclesId";
        String url = baseUrl + resourcePath + "/" + circleId;
        RequestSpecification given = given().header("Authorization", RestTest.BEARER_TOKEN);

        ResponseSpecBuilder specBuilder = new ResponseSpecBuilder();
        specBuilder.expectBody("features.priceMonth", is("5.00"));
        specBuilder.expectBody("features.priceYear", is("50.00"));
        Response response = JsonTest.executeRequestWithSpec(given, url, resource, endpoint, JsonTest.HttpType.GET, specBuilder);
    }

...

public static Response executeRequestWithSpec(RequestSpecification given, String url, String resource, String endpoint, HttpType type, ResponseSpecBuilder builder)
    {
        Response response = null;
        try {
            switch (type) {
                case GET:
                    response = executeGetRequestWithSpec(given, url, builder);
                    break;
                case POST:
                    response = executePostRequestWithSpec(given, url, builder);
                    break;
                case PUT:
                    response = executePutRequestWithSpec(given, url, builder);
                    break;
                case DELETE:
                    response = executeDeleteRequestWithSpec(given, url, builder);
                    break;
            }

            System.out.println(resource + " - " + endpoint + ": " + response.print());
        } catch (AssertionError e) {
            RestTest.failCount++;
            System.err.println(resource + " - " + endpoint + " Error: " + e.getMessage());
        }
        return response;
    }

    private static Response executeGetRequestWithSpec(RequestSpecification given, String url, ResponseSpecBuilder builder)
    {
        ResponseSpecification responseSpec = builder.build();
        Response response = given.when().get(url + ".json").then().assertThat().statusCode(200).spec(responseSpec).extract().response();
        System.out.println("FOOOO" + response.print());
        return response;
    }

您是否正在使用最新版本的REST安全(當前為2.3.0)? 否則,建議您升級到此版本。 2.0中的響應規范存在一些問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM