Как проверить, содержит ли параметр две подстроки с использованием Mockito? У меня есть строка в моем тесте, которая в настоящее время выглядит: Mockito.verify(mockMyObject).myMethod(Mockito.contains("apple")); Я хотел бы изменить его, чтобы проверить, содержит ли параметр "apple" и "banana". Как я могу это сделать? Ответ 1 Просто используйте Mockito.matches(String), например: Mockito.verify(mockMyObject). myMethod( Mockito.matches("(.*apple.*banana.*)|(.*banana.*apple.*)" ) ); Ответ 2 Я думаю, что самым простым решением является вызов функции 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")); Ответ 3 Отметьте эту статью Аргумент соответствия с Mockito для рабочего примера. Ответ 4 Mockito.verify(mockMyObject) .myMethod(Mockito.argThat(s -> s.contains("apple") && s.contains("banana")); Ответ 5 Возможно, это больше не актуально, но я нашел другой способ сделать это, следуя ответу Торстена и этому другому ответу. В моем случае я использовал Hamcrest Matchers Mockito.verify(mockMyObject).myMethod( Mockito.argThat(Matchers.allOf( Matchers.containsString("apple"), Matchers.containsString("banana"))));
Ответ 1 Просто используйте Mockito.matches(String), например: Mockito.verify(mockMyObject). myMethod( Mockito.matches("(.*apple.*banana.*)|(.*banana.*apple.*)" ) );
Ответ 2 Я думаю, что самым простым решением является вызов функции 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 Mockito.verify(mockMyObject) .myMethod(Mockito.argThat(s -> s.contains("apple") && s.contains("banana"));
Ответ 5 Возможно, это больше не актуально, но я нашел другой способ сделать это, следуя ответу Торстена и этому другому ответу. В моем случае я использовал Hamcrest Matchers Mockito.verify(mockMyObject).myMethod( Mockito.argThat(Matchers.allOf( Matchers.containsString("apple"), Matchers.containsString("banana"))));