Mockito.verify方法包含布尔值和参数captor

Tha*_*Ngo 5 java mockito

我不知道Mockito.verify在这种情况下我该怎么用.如何将false传递给Mockito.verify?我尝试了两种不同的方法,但它不起作用.

public Sample someMethod(Sample s, boolean a){....}
@Test
public void test() {
...
verify(mock).someMethod(sampleCaptor.capture(), false));
verify(mock).someMethod(sampleCaptor.capture(), org.mockito.Matchers.eq(false)));
...
}
Run Code Online (Sandbox Code Playgroud)

Jef*_*ica 10

第二种方式你是对的:

verify(mock).someMethod(sampleCaptor.capture(), Matchers.eq(false));
Run Code Online (Sandbox Code Playgroud)

使用Matchers(包括ArgumentCaptor.capture)时,您必须为每个值使用Matcher,因为Matchers通过副作用工作.

如果上述方法不起作用,您可能会在方法的早期误用匹配器.Mockito.validateMockitoUsage()在你打电话之前立即明确打电话有时很有帮助verify,以确保Mockito的内部状态没有任何问题.(关于它如何"不起作用"的附加信息,包括最小的可重复示例,可能有助于解决您的具体情况.)