Mockito Core Matcher-GreaterThan - PullRequest
       38

Mockito Core Matcher-GreaterThan

0 голосов
/ 24 февраля 2020

Я пытаюсь обновить версию mockito в моем проекте.

Текущая версия: mockito-all [1.9.5]

Обновить до: mockito-core [2.8.8]

Некоторые из моих старых тестов терпят неудачу с этой проблемой

Тест:

.andExpect(jsonPath("$.paymentTransaction.totalAmount").value(new GreaterThan<Double>(0.0D)))

Сообщение об ошибке:

java.lang.AssertionError: For JSON path $.paymentTransaction.totalAmount type of value 
Expected :class org.mockito.internal.matchers.GreaterThan
Actual   :class java.lang.Double

Есть какие-нибудь подсказки, если это будет обрабатываться по-другому с обновлением версии mockito?

1 Ответ

0 голосов
/ 24 февраля 2020

В результате вы использовали неправильную перегрузку:

public ResultMatcher value(Object expectedValue) https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/web/servlet/result/JsonPathResultMatchers.html#value - java .lang.Object-

Вместо

public <T> ResultMatcher value(Matcher<T> matcher) https://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/test/web/servlet/result/JsonPathResultMatchers.html#value -org.hamcrest.Matcher-

Причина в том, что вы использовали matcher от Mockito, а не от Hamcrest. Вам необходимо использовать: org.hamcrest.Matchers.greaterThan(T value)

Также обратите внимание, что существует перегрузка jsonPath, принимающая совпадение Hamcrest в качестве второго аргумента (не нужно вызывать value)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...