在我断言的下面的琐碎练习中,我期待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++;
}
}
}
答案 0 :(得分:7)
你嘲笑整个班级,这意味着Mockito正在提供实施并取代你的。
Mockito的类的模拟实现返回值类型的默认值,在此示例中解释了为什么它返回零。
通常,你不会嘲笑你正在测试的课程。您通常使用模拟来理解对象的协作者的行为。