java - 使用 Mockito 调用验证 super.method()

标签 java testing junit mockito super

首先,我想说我正在使用遗留代码,无论我多么想更改它,我都无法更改它。

除此之外,我要做的是验证是否调用了 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/

相关文章:

java - Java 中静态和非静态前向引用的内部工作

java - Spring Boot - 如何从多模块项目中的姐妹模块启动我的 Spring Boot 应用程序?

ant - junit 和 ant 问题。无法开始测试

java - 使用不同的数据运行 JUnit 测试

java - 我如何测试匿名类?

java - hibernate - 持久化策略模式的组合接口(interface)

javascript - 如何通过java程序在运行时在html页面中编写java脚本代码?

java - 缓存结果集

python - Django 自动为任意管理表单生成 POST 数据字典

ios - StoreKit验证错误 21002 : The data in the receipt-data property was malformed