【发布时间】:2021-08-22 17:50:15
【问题描述】:
我有一个 A 类和一个扩展 A 类的 B 类
class A{
protected String x = "";
Method (){
x = "val";
}
}
class B extends A{
// Uses x in a method
}
如果我为 B 类中的方法编写 Junit 测试用例,我会得到 x 的值作为声明时设置的空字符串“”。有没有办法在测试 B 类方法时将 x 的值设置为“val”?
【问题讨论】:
-
你可以通过创建一个合适的
B实例来做到这一点。它是子类,因此它还负责在需要单独值时为父类变量设置值。 -
嗨@Tom,感谢您的评论。我已经稍微编辑了这个问题。你能建议我如何根据这个在测试用例中设置值吗
-
这里好像有一个小误解。您首先需要设计或实现 B 类来做它需要做的任何事情才能正常工作。如果它需要使用
Method或x,那么它需要适当地访问它们。然后单元测试可以测试B的公共和受保护方法,以验证它们是否按预期工作。因此,当您的测试将x作为空字符串而不是“val”时,问题是B,而不是您的测试。
标签: java unit-testing inheritance junit subclass