配置RestAssured在Jackson上使用GSON?

时间:2018-03-29 09:35:03

标签: java rest gson rest-assured

我在使用RestAssured的项目中同时拥有GSON和Jackson,我想使用GSON。官方文档没有提供明确的例子。我尝试了几个配置,但似乎没有用。这是我的配置,我错过了什么吗?

RestAssured.config = RestAssuredConfig.config()
                .decoderConfig(new DecoderConfig("UTF-8"))
                .encoderConfig(new EncoderConfig("UTF-8", "UTF-8"))
                .objectMapperConfig(new ObjectMapperConfig(GSON));

3 个答案:

答案 0 :(得分:2)

嗯,作为Rest Assured documentation states,技术的顺序是:

  1. JSON使用Jackson 2(更快的杰克逊(数据手))
  2. 使用Jackson(databind)的JSON
  3. 使用Gson的JSON
  4. 使用JAXB的XML
  5. 此外,还描述了使用explicit serializerdeserializer

    序列化:

    Message message = new Message();
    message.setMessage("My messagee");
    given().
       body(message, ObjectMapperType.GSON).
    when().
      post("/message");
    

    反序列化:

    Message message = get("/message").as(Message.class, ObjectMapperType.GSON);
    

答案 1 :(得分:1)

在我的项目中,我通过包装原始的RestAssured.given方法来解决了该问题

public static RequestSpecification given() {
    return RestAssured.given()
        .config(RestAssured.config()
            .objectMapperConfig(new ObjectMapperConfig(ObjectMapperType.GSON)));
}

答案 2 :(得分:0)

这在Kotlin对我有用:

RestAssured.config = RestAssuredConfig.config().objectMapperConfig(objectMapperConfig().defaultObjectMapperType(ObjectMapperType.GSON))