如何使用Mockito检查参数是否包含两个子字符串?

2022-09-01 02:56:07

我的测试中有一行目前看起来像:

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

我想修改它以检查参数是否同时包含 和 .我该怎么做?"apple""banana"


答案 1

只需使用 ,例如:Mockito.matches(String)

Mockito.verify(mockMyObject).
  myMethod(
    Mockito.matches("(.*apple.*banana.*)|(.*banana.*apple.*)"
  )
);

答案 2

从Java 8和Mockito 2.1.0开始,可以按如下方式使用Streams:

Mockito.verify(mockMyObject).myMethod(
    Mockito.argThat(s -> s.contains("apple") && s.contains("banana"))
);

从而提高可读性


推荐