2015-04-01 3 views
0

Я получаю исключение из-за незаконного состояния, потому что он не может сериализовать объект в json, поскольку в пути к классам нет json-сериализатора.Тестирование запроса на публикацию RESTFull, который ожидает MediaType_Application

Это мой метод испытаний.

@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 в classpath. Кроме того, я добавил 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.

ответ

0

Глупый недосмотр с моей стороны. Поскольку я развертываю тест в веб-архиве, я должен был включить его в этот фактический архив, как показано ниже.

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