Утвердить RestAssured тело ответа с Regex - PullRequest
0 голосов
/ 06 июня 2018

Я пытаюсь установить поле метки времени в теле ответа json, используя RestAssured как часть моих интеграционных тестов.Я не уверен, какой метод является правильным для соответствия регулярному выражению

Вот ответ json:

{
"timestamp": "2018-06-05T23:56:09.653+0000",
"status": 200,
"error": "None",
"message": "None"
}

Это мой код для моего утверждения ответа RestAssured

String pattern = "^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}.\\d{3}(\\+|\\-)\\d{4}$";
Pattern r = Pattern.compile(pattern);
response.then().assertThat()
    .body("timestamp", matchesPattern(pattern)) //<= ERROR HERE
    .body("status", equalTo(999))
    .body("error", containsString("None"))
    .body("message", containsString("None"));

Когда я компилирую вышеприведенный код, я получаю сообщение об ошибке при проверке шаблона временной метки

  required: java.lang.String,java.lang.CharSequence
  found: java.lang.String
  reason: actual and formal argument lists differ in length

Я не уверен, какой метод будет поддерживать в Hamcrest для проверки шаблона регулярных выражений.

1 Ответ

0 голосов
/ 06 июня 2018

Проблема в том, что в моем проекте нет правильных зависимостей.org.hamcrest.core не имеет метода для matchesPattern.После добавления приведенной ниже зависимости сработал следующий импорт

<!-- https://mvnrepository.com/artifact/org.hamcrest/java-hamcrest -->
<dependency>
  <groupId>org.hamcrest</groupId>
  <artifactId>java-hamcrest</artifactId>
  <version>2.0.0.0</version>
  <scope>test</scope>
</dependency>

Вам необходимо импортировать приведенный ниже код

import static org.hamcrest.text.MatchesPattern.matchesPattern;

...