Ответ 1
Бегун JUnit должен будет получить доступ к полю рефлексивно, чтобы запустить правило. Если поле было приватным, доступ будет бросать IllegalAccessException
.
Другой вариант заключается в том, что бы бегун изменил доступ с частного на обычный, прежде чем запускать правило. Однако это может вызвать проблемы, если включен менеджер безопасности.
Если вы хотите, чтобы в вашем тестовом классе не было публичных полей, вы можете использовать методы аннотации JUnit 4.11, которые возвращают Rule
с помощью @Rule
или @ClassRule
.