在下面的断言中,我期望1,但得到0。为什么我看到这种行为?
public class MockitoTest {
POJO mockedPojo;
@Before
public void setup() {
mockedPojo = mock(POJO.class);
}
@Test
public void testIndifferentMethodInvocationOrder() {
int result1 = mockedPojo.getOne();
assertEquals(1, result1);
}
class POJO {
int count = 1;
int getOne() {
return count++;
}
int getTwo() {
return count++;
}
}
}
您已经模拟了整个类,这意味着Mockito正在提供实现并替换您的实现。
Mockito的类的mock实现返回值类型的默认值,这在本例中解释了它返回零的原因。
一般来说,你不会嘲笑你正在测试的类。您通常使用嘲讽来理解对象的合作者的行为。