【发布时间】:2017-02-10 22:46:53
【问题描述】:
我想实现具有最佳封装的包,但要对其进行测试。如何让一个包的包私有成员仅对另一个(友好)包可见?
【问题讨论】:
-
我认为这不可能。最好只有吸气剂。
-
首先,测试通常与被测类放在同一个包中。第二——不要检查内部状态。确保该类正确实现了其 API,但通常不应直接测试实现细节。
-
@Zarwan,在 .NET 中,我可以用
[InternalsVisibleTo("Tests")]标记程序集来解决这个问题。我在 Java 中找不到等效功能的障碍,因为它也是可反射的。 -
您可以使用反射来更改可访问性,但我不建议这样做。
-
你的问题体现了一个矛盾的术语。
标签: java unit-testing package encapsulation access-specifier