有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

模拟接口方法中的java空指针异常

我使用TestNG进行测试,使用JMockit模拟mockMethod()。以下是测试用例:

@Test
public void testClass1() {
    new MockUp<MyInterface>() {
    @Mock
    public int myMethod(final MyObject someObject ){
         return 0;
        }
    };

    MyObject obj = new MyObject();
    Assert.assertEquals(obj.mockMethod(someObject),0); 
    }
}

我为assertEquals()调用的mockMethod()如下所示:

public class Class1 {
      MyInterface my;
      public int mockMethod(final MyObject someObject ){
             ......  //processing steps
             return my.myMethod(someObject);
      }
}

测试用例抛出空指针异常。我做错了什么?我是否模拟mockMethod()的实现?我也试过了,但没用


共 (1) 个答案

  1. # 1 楼答案

    JMockit创建了MyInterface的模拟实例,但您的测试从未使用过它。它可以通过MockUp#getInstance()方法获得。当然,测试还需要将实例传递给被测试的类