如何配置EasyMock Class Extension 3.1?

Ser*_*yan 3 java easymock configure

我想将EasyMock Class Extension 3.1添加到我的项目中,我对EasyMock 3.1 CE的依赖性有疑问.我添加依赖项:cglib-2.2.2.jar和asm-4.0.jar并抛出异常:

java.lang.VerifyError: class net.sf.cglib.core.DebuggingClassWriter overrides final method visit.(IILjava/lang/String;Ljava/lang/String;Ljava/lang/String;[Ljava/lang/String;)V
Run Code Online (Sandbox Code Playgroud)

当我使用cglib-nodep-2.1_3.jar和asm-4.0.jar抛出另一个异常时:

java.lang.NoClassDefFoundError: org/objenesis/ObjenesisHelper
    at org.easymock.internal.ObjenesisClassInstantiator.newInstance(ObjenesisClassInstantiator.java:26)
    at org.easymock.internal.ClassProxyFactory.createProxy(ClassProxyFactory.java:219)
    at org.easymock.internal.MocksControl.createMock(MocksControl.java:70)
Run Code Online (Sandbox Code Playgroud)

如何配置EasyMock Class Extension 3.1?我需要使用哪些依赖项?

Mat*_*ell 6

Easymock扩展3.1依赖于easymock 3.1,依赖关系是:

  1. cglib:cglib-nodep 2.2.2
  2. org.objenesis:objenesis 1.2

来自Maven Easymock.

如果您正在使用maven,那么以下依赖项将起作用:

<dependency>
    <groupId>org.easymock</groupId>
    <artifactId>easymockclassextension</artifactId>
    <version>3.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)


mat*_*sev 5

从3.0版开始,不再需要导入classextension.只需要搜索并替换所有org.easymock.classextension.*,org.easymock.*只需导入"普通"easymock依赖项(请参阅EasyMock 3.0文档):

<dependency>
    <groupId>org.easymock</groupId>
    <artifactId>easymock</artifactId>
    <version>3.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

此外,如果您使用Maven,则可以使用该命令

mvn依赖:树

查看所有依赖项(传递性和非传递性).