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

时间:2014-07-31 12:15:40

标签: java unit-testing testng jmockit

我正在使用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);
      }
}

测试用例抛出Null指针异常。我究竟做错了什么?我是否嘲笑mockMethod()的实现?我也尝试过,但它没有用。

1 个答案:

答案 0 :(得分:0)

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