【发布时间】:2017-03-22 13:07:06
【问题描述】:
是否可以模拟超类方法调用?我看过很多帖子,但它们要么无关紧要,要么使用不同的测试框架。
easymock 可以吗?
如果不是,还有什么其他框架可以让我这样做?
【问题讨论】:
-
如果没有,我如何使用其他框架进行模拟?
是否可以模拟超类方法调用?我看过很多帖子,但它们要么无关紧要,要么使用不同的测试框架。
easymock 可以吗?
如果不是,还有什么其他框架可以让我这样做?
【问题讨论】:
不,不是。而且我不认为它适用于其他框架。这需要对基类进行字节码操作。所以也许是 Powermock,但我不确定。
但是,20 年来我从未需要这样做。一般来说,这意味着模板模式的错误实现。
所以而不是类似的东西
public void foo() {
// do stuff
super.foo(); // don't forget to call super
// do some other stuff
}
你最好这样做
基类:
public void foo() {
doBeforeFoo();
// ... stuff that is in super
doAfterFoo();
}
然后你填补子类的漏洞
【讨论】: