我有一个儿童类代码 -
public class A extends B {
public A(User user, UserFilter filter) {
super(user, filter);
}
/* the second possible option
public A(User user, UserFilter filter) {
super(user, filter, null);
}
*/
}
父类 -
public class B {
private User user;
private UserFilter filter;
private QRCode code;
public B(User user, UserFilter filter) {
this.user = user;
this.filter = filter;
}
public B(User user, UserFilter filter, QRCode code) {
this.user = user;
this.filter = filter;
this.code = code;
}
}
我想验证是否只调用了特定的父构造函数。不是super(user, filter, null)
,而是super(user, filter)
。我可以添加字段非常重要,因此检查代码是否为空是不合适的。
我想使用PowerMockito
进行验证。
答案 0 :(得分:1)
将public B(User user, UserFilter filter, QRCode code)
设为私有,并添加调用它的静态方法。
通过这样做,您将能够使用任何构造函数实例化您的B类。但B的后代将被迫只使用可见的构造函数