Как проверить, содержит ли параметр две подстроки, используя Mockito? - PullRequest
22 голосов
/ 15 октября 2010

В моем тесте есть строка, которая в данный момент выглядит следующим образом:

Mockito.verify(mockMyObject).myMethod(Mockito.contains("apple"));

Я хотел бы изменить его, чтобы проверить, содержит ли параметр оба значения "apple" и "banana". Как бы я пошел по этому поводу?

Ответы [ 3 ]

30 голосов
/ 15 октября 2010

Просто используйте Mockito.matches(String), например:

Mockito.verify(mockMyObject).
  myMethod(
    Mockito.matches("(.*apple.*banana.*)|(.*banana.*apple.*)"
  )
);
13 голосов
/ 05 декабря 2014

Я думаю, что самое простое решение - это несколько раз вызывать verify ():

verify(emailService).sendHtmlMail(anyString(), eq(REPORT_TITLE), contains("Client response31"));
verify(emailService).sendHtmlMail(anyString(), eq(REPORT_TITLE), contains("Client response40"));
verify(emailService, never()).sendHtmlMail(anyString(), anyString(), contains("Client response30"));
4 голосов
/ 19 февраля 2019
 Mockito.verify(mockMyObject)
     .myMethod(Mockito.argThat(s -> 
         s.contains("apple") && s.contains("banana"));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...