java - 如何验证正在调用父类(super class)的构造函数

标签 java unit-testing

假设有一个父类(super class)

class SuperClass {
    SuperClass(Foo foo) {
        this.foo = foo;
    }

    SuperClass() {
        this.foo = new DefaultFoo();
    }
}

还有一个子类

class SubClass extends SuperClass {
     SubClass(Foo foo) {
        super(foo);
    }
}

被测类是SubClass。我想验证 SubClass' 构造函数确实在调用它的父类(super class)的非空构造函数。有什么办法可以做到这一点?

最佳答案

我会通过 super 构造函数的副作用来测试它。例如它是否设置特定字段或更改行为?

请注意,您的类的实现实际上应该不受测试影响。所以你只对它如何影响构造的实体感兴趣。否则,如果/当您重构类层次结构时,您必须更改测试,而您需要它们保持不变才能执行回归

关于java - 如何验证正在调用父类(super class)的构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12814821/

相关文章:

java - 用用户输入替换字符串 - Java

c# - UI测试框架+持续集成?

php - 使用 phpunit DB::table()->get() 测试 Laravel 4.2 返回数组而不是对象

java - 创建表时 Cassandra 'timestamp' InvalidQueryException

java - 为什么我的图像不显示? (Java 图形用户界面)

c# - 如何使用 NUnit 和 Rhino Mocks 模拟 HttpContext.Current.Items

java - 在 Eclipse 中的测试套件中运行单个测试

Python测试: How to test correct function calls of downstream functions?

java - 等待超时

java - Drools 中的 `Unable to find class` 错误