gpt4 book ai didi

junit - 如何 jmock Final 类(class)

转载 作者:行者123 更新时间:2023-12-02 04:04:40 24 4
gpt4 key购买 nike

我试图在 eclipse 中使用 JDave 在 junit 中模拟最终类(AnyFinalClass.java)。

public void setUp() throws Exception {
Mockery mockery = new Mockery() {{
setImposteriser(ClassImposteriser.INSTANCE);
}};

AnyFinalClass any = mockery.mock(AnyFinalClass.class);
}

我尝试使用 jdave-unfinalizer-1.1.jar 作为 javaagent,但没有成功。我尝试了多种方法,但出现以下异常

java.lang.IllegalArgumentException:无法子类最终类类 AnyFinalClass 在net.sf.cglib.proxy.Enhancer.generateClass(Enhancer.java:446) 在net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)

已经尝试过 jdave unfinalizer 的人可以告诉我如何使其在 eclipse 上工作的确切步骤吗?

我在 eclipse.ini 文件中设置了以下内容,但遇到了问题-Xbootclasspath/a:lC:\WS\JunitTesting\jars\asm-3.0.jar-javaagent:C:\WS\JunitTesting\jars\jdave-unfinalizer-1.1.jar

在运行执行 junit 时,我将 vm 参数指定为javaagent:C:\WS\JunitTesting\jars\jdave-unfinalizer-1.1.jar

我不确定代码是什么。 jdave 没有代码,其站点指向其他无法正常工作的站点。请更正我的代码或提供您相同的工作代码。非常感谢任何帮助。

最佳答案

来自Enhancer.java第446行:

if (TypeUtils.isFinal(sc.getModifiers()))
throw new IllegalArgumentException("Cannot subclass final class " + sc);

我没有使用过 JDave,而是使用过另一个模拟框架,唯一允许模拟最终类的是 powermock另请参阅here

关于junit - 如何 jmock Final 类(class),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12099764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com