JUnit中为什么@rule注释字段必须是公开的吗?(Why @Rule annotated fie

2019-07-18 05:36发布

在JUnit测试的情况下,通过注释字段@Rule必须是公共的。 它打破了常见的Java编码规范(所有类的成员变量不应该是公共的)。 为什么JUnit的要求呢?

对于文档@Rule : https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/Rule.java

Answer 1:

JUnit的亚军将需要反思访问现场运行规律。 如果该字段是私人的访问将抛出IllegalAccessException

另一种选择将是有运行规则之前亚军修改公共私人的访问。 然而,可能会导致在情况下,安全管理器启用的问题。

如果你想避免从JUnit的4.11注释方法返回一个测试类,你可以公共领域的Rule@Rule@ClassRule



文章来源: Why @Rule annotated fields in JUnit has to be public?