为什么TogglzRule必须公开?

时间:2013-11-05 10:16:06

标签: togglz

如果我在单元测试中声明TogglzRule,它必须是公共的,否则会抛出异常:java.lang.Exception: The @Rule 'togglzRule' must be public.

我曾经宣称成员是私人的,为什么这不可能?

1 个答案:

答案 0 :(得分:6)

这是一个JUnit限制。需要在不做任何“肮脏技巧”的情况下注入规则工作。来自@Rule的javadoc:

  

注释引用返回规则的规则或方法的字段。字段必须是公开的,而不是静态的,并且子类型为org.junit.rules.TestRule(首选)或org.junit.rules.MethodRule