测试期望MediaType Application的RESTFul post请求

时间:2015-04-01 22:23:53

标签: java json jackson rest-assured

我得到一个非法的状态异常,因为它无法将对象序列化为json,因为类路径中没有json序列化器。

这是我的测试方法。

    @Test
    public void testAddUser() {
    User user = new User(1, "hhhh", "1234", "bbbb", "bbbbb");           

    given()
    .contentType(MediaType.APPLICATION_JSON)
    .body(user)
    .expect()
    .statusCode(200) 
    .log().ifError()
    .when()
    .post("/rest/user/add");
}

这是我添加的jackson依赖项,我假设已将jackson添加到类路径中。此外,我还在构建路径中添加了一个jax-rs jackson jar,但仍然收到了该错误。

<dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
                <version>1.9.13</version>
            </dependency>

            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
                <version>1.9.13</version>
            </dependency>

            <dependency>
                <groupId>com.fasterxml.jackson.jaxrs</groupId>
                <artifactId>jackson-jaxrs-json-provider</artifactId>
                <version>2.5.1</version>
            </dependency>

我在这里完全错过了什么?

我还检查了WEB-INF / lib,JARS也在那里。

1 个答案:

答案 0 :(得分:0)

我的愚蠢疏忽。当我在Web存档中部署测试时,我应该将它包含在下面的实际存档中。

libs = Maven.resolver().resolve("org.codehaus.jackson:jackson-core- 
asl:1.9.13")               
.withTransitivity().as(File.class);
archive.addAsLibraries(libs);