9

我想知道在 Junit 中处理受保护方法的好方法。

假设我想测试一个名为 A 的类,它有一个受保护的成员和构造函数。我知道为了测试类 AI 应该编写另一个名为 ATest 的类,它可能扩展 TestCase (这在 Junit3 中应该是强制性的)。因为我想测试一个受保护的方法并且因为 A 有一个受保护的构造函数,所以我的测试类 ATest 还应该扩展实现该方法的类 A,以便能够创建该类并访问该方法。

可能是两个类的双重继承一个不错的解决方案?

PS 我已经知道在 Junit 4 中可以避免从 TestCase 继承。

4

2 回答 2

17

要访问A的受保护成员,您只需将AATest放在同一个包中即可。

于 2012-10-12T00:12:41.997 回答
1

Java 不允许实现的多重继承。您可以实现多个接口。

我更喜欢使用反射来获取我不想让客户知道的测试方法。也适用于私有方法。

于 2012-10-12T00:00:20.067 回答