在 Junit 中测试子类时设置超类变量

Set a variable of superclass while testing subclass in Junit

我有一个 class A 和一个 class B 延伸 class A

class A{
    protected String x = "";
    Method (){
    x = "val";
    }
}
class B extends A{
     // Uses x in a method
}

如果我为 class B 中的方法编写 Junit 测试用例,我得到 x 的值作为声明时设置的空字符串“”。有没有办法在测试 class B 方法时将 x 的值设置为“val”?

鉴于问题的新范围,您应该能够通过创建类型 B (bObject) 的对象然后从 A 调用 Method() 来设置 x。

B bObject = new B();
bObject.Method();

根据您在问题中显示的方法,这将设置 X。你也可以说

B bObject = new B();
bObject.setX(str);

其中 str 代表您希望 x 用于您的测试用例的任何内容。这假设您在 A 中设置了 getter 和 setter,这通常是最佳做法。