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

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

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

  1. public class ErdpTest{
  2. private Erdp erdp = null;
  3. @Before
  4. public void setUp() throws Exception {
  5. erdp = mock(Erdp.class);
  6. }
  7. @Test
  8. public void testMyFunctionTrue() {
  9. when(erdp.myFunction()).thenCallRealMethod();
  10. assertTrue(erdp.myFunction());
  11. }
  12. }
dbf7pr2w

dbf7pr2w1#

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

6tqwzwtp

6tqwzwtp2#

您可以尝试以下方法:

  1. public class ErdpTest {
  2. private Erdp erdp = null;
  3. @Before
  4. public void setUp() {
  5. erdp = mock(Erdp.class);
  6. }
  7. @Test
  8. public void testMyFunctionTrue() {
  9. doCallRealMethod().when(erdp).myFunction();
  10. assertTrue(erdp.myFunction());
  11. }
  12. }

相关问题