java - 如何在 REST Assured 中访问底层的 Jackson ObjectMapper?

标签 java jackson rest-assured

我需要在 REST Assured 中配置底层的 Jackson ObjectMapper。我正在使用 REST Assured 编写 REST API 测试,我需要定义一些过滤器来注册用于将我的对象序列化为 JSON 的 ObjectMapper:

    String newTestSuite = "{\"name\":\"Added through Rest API\",\"description\":\"Test Description\",\"steps\":[]}";

    FilterProvider filters = new SimpleFilterProvider().addFilter("createNewTestSuite", new NewTestSuiteFilter());
    ObjectMapper om = new ObjectMapper();
    om.setFilters(filters);

    try {
        TestSuite ts = om.readValue(newCaspianTest, TestSuite.class);

        RequestSpecification requestSpec = new RequestSpecBuilder()
            .setBaseUri("https://somesite.com")
            .setBody(ts)
            .setUrlEncodingEnabled(false)
            .build();

        ResponseSpecification responseSpec = new ResponseSpecBuilder()
            .expectStatusCode(200)
            .expectStatusLine(Matchers.containsString("200 OK"))
            .build();

        RestAssured.given()
            .auth().basic("testUser","testPassword")
            .spec(requestSpec)
            .log().all()
            .post("/restendpoint")
                .then()
                .log().all()
                .spec(responseSpec);

    } catch(JsonParseException jpe) {

    } catch(JsonMappingException jme) {

    } catch(IOException ioe) {

    }
}

最佳答案

你可以试试这个:

RestAssured.config = RestAssuredConfig.config().objectMapperConfig(new ObjectMapperConfig().jackson2ObjectMapperFactory(
new Jackson2ObjectMapperFactory() {
        @Override
        public ObjectMapper create(Class aClass, String s) {
            FilterProvider filter = new SimpleFilterProvider().addFilter(...);
            ObjectMapper objectMapper = new ObjectMapper();
            objectMapper.setFilters(filter);
            return objectMapper;
        }
    }
));

关于java - 如何在 REST Assured 中访问底层的 Jackson ObjectMapper?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25070085/

相关文章:

java - 查找提交 SVN 的行的百分比

java - 如何在fasterxml中实现自定义序列化功能

java - 放心 JsonPath : Issue with getting list from json

Play 框架中的 java.lang.NoSuchMethodError Rest Assured 异常

java - 如何从 REstAssured 中的 Json 数组中获取 JSON 对象

java - 在 Java 6 字符串文字中解析 unicode 转义时出现问题...?

java - libgdx vector 2 : shooting ball at an angle

java - 如何在 Spring 中使用 Java Constant 作为 @Scheduler 表达式注解的一部分?

java - 如何将 JSON 反序列化为具有已知必填字段但可以具有多个未知字段的 Java 类?

java - 在osgi中使用jackson提供程序和cxf(未找到消息正文编写器)