假设有一个父类(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/