0

我正在尝试为生产和消费application/json内容的 RESTful 端点编写 Citrus 测试,但我不确定如何将我的响应解组到 Java POJO(使用 Jackson 或任何(un)marshaller Citrus 支持的东西)。

例如,在 REST-assured 中,我可以简单地写

UploadResponse response = when().post("/file").as(UploadResponse.class);

柑橘中是否有等价物?

我只能找到使用validate()or的示例extractFromPayload(),这些示例并没有真正涵盖我的用例,因为我不想对标量成员进行操作,而是将整个响应对象嵌入到请求对象中以供后续测试步骤使用。

4

1 回答 1

0

你可以这样做:

http().server(testServer)
      .post("/file")
      .validationCallback(new JsonMappingValidationCallback<UploadResponse>(UploadResponse.class) {
            @Override
            public void validate(UploadResponse payload, Map<String, Object> headers, TestContext context) {
                // do something with payload object
            }
      });

JsonMappingValidationCallback 自动在 Spring bean 应用程序上下文中搜索 JSON ObjectMapper。您还可以将 ObjectMapper 实例作为构造函数 arg 提供给 JsonMappingValidationCallback。

于 2016-08-04T06:42:10.477 回答