W przypadku testu JUnit pole oznaczone przez @Rule
musi być publiczne. Łamie wspólną konwencję kodowania Java (wszystkie zmienne składowe klasy nie powinny być publiczne). Dlaczego JUnit tego wymaga?Dlaczego pola @Rule z adnotacjami w JUnit muszą być publiczne?
Dokumentacja @Rule
: https://github.com/junit-team/junit/blob/master/src/main/java/org/junit/Rule.java
+1 Możesz również opisać metodę za pomocą @Rule, aby uniknąć problemu. Powinieneś dodać to do swojej odpowiedzi. –
Dzięki Matthew, nie wiedziałem o tym. Podobno nowa funkcjonalność w 4.11. –
@KErlandsson - jesteś tego całkowicie pewien? Oto, co mówi dokumentacja interfejsu JUnit API: "Pole musi być publiczne, nie statyczne i podtyp TestRule (preferowany) lub MethodRule" – dziki