easymock依赖于net / sf / cglib / proxy / Enhancer吗?

时间:2010-12-06 23:28:04

标签: easymock

我正在尝试完成有关easymock首次使用它的教程。 http://www.vogella.de/articles/EasyMock/article.html

我正在使用 - 面向Java开发人员的Eclipse IDE(构建ID:20100218-1602)
- Junit 4插件
- easymock 3.0

在创建如下所述的项目并作为JUNIT testI执行后,我得到了错误。

**java.lang.NoClassDefFoundError: net/sf/cglib/proxy/Enhancer**            

这是什么错误,我该如何解决?它出现在

行上
EasyMock.replay(calcMethod);            
  

java.lang.NoClassDefFoundError:net / sf / cglib / proxy / Enhancer at at   org.easymock.internal.ClassExtensionHelper.getControl(ClassExtensionHelper.java:57)   在org.easymock.EasyMock.getControl(EasyMock.java:2068)at   org.easymock.EasyMock.replay(EasyMock.java:1970)at   income.IncomeCalculatorTest.testCalc1(IncomeCalculatorTest.java:33)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at   sun.reflect.NativeMethodAccessorImpl.invoke(未知来源)at   sun.reflect.DelegatingMethodAccessorImpl.invoke(未知来源)at   java.lang.reflect.Method.invoke(未知来源)at   org.junit.runners.model.FrameworkMethod $ 1.runReflectiveCall(FrameworkMethod.java:44)   在   org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)   在   org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)   在   org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)   在   org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)   在   org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)   在   org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:73)   在   org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:46)   在org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
  在org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:41)
  在org.junit.runners.ParentRunner $ 1.evaluate(ParentRunner.java:173)
  在   org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)   在   org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)   在org.junit.runners.ParentRunner.run(ParentRunner.java:220)at   org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)   在   org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)   在   org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)   在   org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)   在   org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)   在   org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)   引起:java.lang.ClassNotFoundException:   net.sf.cglib.proxy.Enhancer at   java.net.URLClassLoader $ 1.run(未知来源)at   java.security.AccessController.doPrivileged(Native Method)at   java.net.URLClassLoader.findClass(未知来源)at   java.lang.ClassLoader.loadClass(未知来源)at   sun.misc.Launcher $ AppClassLoader.loadClass(未知来源)at   java.lang.ClassLoader.loadClass(未知来源)... 28更多

2 个答案:

答案 0 :(得分:4)

是的,我认为你需要它。

http://cglib.sourceforge.net/

也可能在easymock下载中的某种依赖项目录中

答案 1 :(得分:1)

从EasyMock 3.0页面: 要执行类模拟,还要将ObjenesisCglib添加到类路径中。