如何使用EasyMock模拟java中的最终类?-Junit测试

如何使用EasyMock模拟java中的最终类?-Junit测试,java,junit,easymock,Java,Junit,Easymock,我有最后一节课,有一个构造函数 我很难模仿这门课。我知道我不能在最后一节课上使用EasyMock。但在我的项目中,我应该只使用easymock。有没有办法嘲笑这个班?你能请任何人帮我吗 //A a = createMock(A.class);//IllegalException occuring while running this test case For example : final class A { private int a; A(int a){ this.a = a;

我有最后一节课,有一个构造函数

我很难模仿这门课。我知道我不能在最后一节课上使用EasyMock。但在我的项目中,我应该只使用easymock。有没有办法嘲笑这个班?你能请任何人帮我吗

//A a = createMock(A.class);//IllegalException occuring while running this test case


For example :

final class A {

private int a;
  A(int a){
this.a = a;
}

}

用简单易懂的语言来模仿最后一节课是不可能的。您必须添加类似的东西,它与EasyMock很好地集成。或者您编写了一个不需要模拟最终类的测试。

我能想到的最好方法是,如果您的最终类实现了任何接口(考虑到该接口包括您在测试中需要使用的方法),您始终可以创建实现该接口的另一个类的实例,并将其用作模拟或使用


问题是,有时在您已经知道PowerMock等工具存在的情况下,找到需求的变通方法会成倍增加执行某项任务所需的工作量。

您可以提取它的接口,然后到处使用该接口,然后模拟新接口。为什么类首先是final?它的客户端代码是final类。因此我无法更改。因此,我正在努力“您始终可以创建实现相同接口的另一个类的实例,并将其用作模拟”-如果您有接口,那么为什么不模拟接口?这就是重点。如果您只想使用mock,则无需创建存根实现。
PowerMock.mockStatic(MyFinalClass)是我正在做的,我得到一个错误,上面写着“不能将final类子类化”。我做错什么了吗?但是我没有找到powerMock对java11的支持。你有什么建议吗?