2

在我断言的以下简单练习中,我期望 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++;
      }
   }

}

4

1 回答 1

7

您已经模拟了整个类,这意味着 Mockito 正在提供实现并替换您的实现。

Mockito 的类的模拟实现返回值类型的默认值,在此示例中解释了它返回零的原因。

通常,您不会模拟您正在测试的课程。您通常使用模拟来了解对象协作者的行为。

于 2012-09-07T10:23:05.957 回答