我正在使用 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。
谢谢!