2016-06-07 7 views
-1

У меня проблема с десериализацией тела ответа. Мне нужен sql.Date, но на самом деле я получаю lang.String Помогите мне правильно настроить мой RestAssure, пожалуйста.Путь Json не соответствует. Ожидаемый sql.Date, найден lang.String (RestAssure)

Вот как мои RestAssure.config выглядит:

RestAssured.config = 
    RestAssuredConfig.config().objectMapperConfig(objectMapperConfig() 
    .gsonObjectMapperFactory((aClass, s) -> 
    new GsonBuilder().setDateFormat("yyyy-MM-dd").create())); 

Вот мой тест:

given() 
     .contentType("application/json") 
     .when() .get("some url") .then() 
     .assertThat().body("birthday", response -> 
     equalTo(Date.valueOf("2016-06-07"))) 

И такое исключение, которое я получил:

java.lang.AssertionError: 
1 expectation failed. 
JSON path birthday doesn't match. 
Expected: <1994-12-30> Actual: 1994-12-30 

ответ

1

Использование extract() на ответ, чтобы получить необходимое значение и конвертировать вашу строку в любое удобное для вас ,

Response r = given() 
    .contentType("application/json") 
    .when() .get("some url") 
    .then() 
    .extract(); 

 Смежные вопросы

  • Нет связанных вопросов^_^