获取nullpointerexception尝试使用mockito进行部分模拟的简单示例

deyfvvtc  于 2021-09-13  发布在  Java
关注(0)|答案(2)|浏览(328)

我试图实现一个简单的部分模拟示例。运行下面的测试,我不断得到一个 NullPointerException 方法第一行的erdp.myfunction。知道为什么吗?

public class ErdpTest{

  private Erdp erdp = null;

  @Before
  public void setUp() throws Exception {
    erdp = mock(Erdp.class);
  }

  @Test
  public void testMyFunctionTrue() {
    when(erdp.myFunction()).thenCallRealMethod();
    assertTrue(erdp.myFunction());
  }
}
dbf7pr2w

dbf7pr2w1#

使用 spy 部分嘲弄。下面是一些代码: erdp = spy(new Erdp.class); 您可以在 spy 通过与模拟中的方法相同的方法 mock .
两者之间的关键区别 spymock 模拟只是一个代理,默认情况下所有方法都返回null。对于间谍,所有方法都调用真实方法。

6tqwzwtp

6tqwzwtp2#

您可以尝试以下方法:

public class ErdpTest {

    private Erdp erdp = null;

    @Before
    public void setUp() {
        erdp = mock(Erdp.class);
    }

    @Test
    public void testMyFunctionTrue() {
        doCallRealMethod().when(erdp).myFunction();
        assertTrue(erdp.myFunction());
    }
}

相关问题