首先,我想说我正在使用遗留代码,无论我多么想更改它,我都无法更改它。
除此之外,我要做的是验证是否调用了 super.method()。这正是我试图用 Mockito/Junit 测试的内容:
class foo extends JApplet(){
public void destroy(){
super.destroy();
}
}
如果不是调用 super 方法,通常这样的东西在测试用例中就足够了:
verify(foo).destroy();
我已经看到这个问题被问过好几次了,通常的回答是“继承不好,改变你的代码”,不幸的是我根本做不到。有谁知道我可以用来测试这个的任何框架或小技巧吗?
提前致谢 - 我知道这是一个棘手的问题!
最佳答案
您可以重构代码以在其他方法中调用 super 方法,例如:
class foo extends JApplet(){
public void destroy(){
callSuperDestroy();
}
public void callSuperDestroy(){
super.destroy();
}}
然后验证:
verify(foo).callSuperDestroy();
关于java - 使用 Mockito 调用验证 super.method(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20523553/