【发布时间】:2019-05-03 00:54:09
【问题描述】:
我有一个类,比如SimpleClass,它有两个具有相同名称和相同数量参数但参数类型不同的函数。现在我假设模拟它们的返回值应该是使用两个带有适当匹配器的 when 语句,但是当我尝试时我得到以下错误:
org.mockito.exceptions.misusing.InvalidUseOfMatchersException: 此处检测到错误的参数匹配器:
-> 在 mocks.MockTest.whenMethodsHaveSimilarSignatures(MockTest.java:28) -> 在 mocks.MockTest.whenMethodsHaveSimilarSignatures(MockTest.java:28)
这是我正在尝试的示例:
public class SimpleClass {
public boolean doWork(String value, String name) {
return false;
}
public boolean doWork(Integer value, String name) {
return true;
}
}
@RunWith(MockitoJUnitRunner.class)
public class MockTest {
private SimpleClass thing;
@Before
public void setup() {
thing = new SimpleClass();
}
@Test
public void whenMethodsHaveSimilarSignatures() {
when(thing.doWork(anyString(), anyString())).thenReturn(true);
when(thing.doWork(any(Integer.class), anyString())).thenReturn(false);
assertThat(thing.doWork("one", "name")).isTrue();
assertThat(thing.doWork(1, "name")).isFalse();
}
}
虽然我不是 Mockito 的向导,但我已经使用它一段时间了,从未遇到过这个问题。想法?我正在使用 Mockito-Core v2.2.9
【问题讨论】:
标签: java unit-testing testing mockito