如何使用EasyMock在java中模拟final类? - Junit测试

时间:2014-01-18 11:25:11

标签: 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;
}

}

2 个答案:

答案 0 :(得分:6)

使用纯EasyMock模拟最终课程是不可能的。您必须添加类似PowerMock的内容,它与EasyMock完美集成。或者你编写一个不需要模拟最终类的测试。

答案 1 :(得分:1)

我能想到的最好的是,如果你的最终类实现任何接口(考虑到接口包含你需要在测试中使用的方法),你总是可以创建另一个实现相同接口的类的实例并使用这是模拟或使用dynamic proxies

问题在于,当您已经知道像PowerMock这样的工具在那里时,有时候找到需求的变通方法会成倍地增加做某事所需的工作。