运行JMockit Mocks时为什么会出现NoClassDefFoundError?

时间:2015-10-07 14:00:48

标签: java junit jmockit

我正在使用 Junit 4 运行 JMockit 并收到错误java.lang.NoClassDefFoundError.

我想测试我的类(mycomponent)如何处理从第三方库静态类返回的值。我通过创建模拟类(mocked3rdpartycomponent)然后调用我的mycomponent来接近这个:

mytest-> mycomponent-> mocked3rdpartycomponent

模拟类的定义如下。模拟的方法和类是替换前面提到的第三方库:

new Mockup<MockedClass>() {
  @Mock public ReturnType[] mockedMethod() {
    ReturnType[] ni = {null};
    return ni;
  }
}

Mycomponent mc = new MyComponent();

当我运行我的测试类时,我收到以下错误:

java.lang.NoClassDefFoundError: mockit/internal/state/TestRun
at <MockedClass.mockedMethod>(MockedClass.java)
at <MyComponent>.<init>
caused by: java.lang.ClassNotFoundException: mockit.internal.state.TestRun

编辑:除此之外,如果我尝试在被测单元中调出我的假电话,则会出现一个屏幕,指出无法找到Junit的源代码。

编辑:第三方库也是一些静态方法。

有人知道这可能是由什么造成的吗?

我的环境是Eclipse Mars 4.5.0,JUnit 4.10,JMockit 1.19。

谢谢!

0 个答案:

没有答案