Мне назначена задача модульного тестирования класса, с которым я никогда не работал напрямую с JUnit, и мне строго запрещено изменять код в пакете. Обычно это не проблема, так как большинство наших модульных тестов предназначены только для функциональности и согласованности ввода/вывода, что можно сделать просто за счет запуска подпрограмм и проверки их возвращаемых значений.
Однако иногда возникает необходимость проверить приватную переменную внутри класса или непосредственно редактировать приватную переменную, чтобы проверить внутреннее поведение. Есть ли способ получить доступ к ним, будь то через JUnit или любым другим способом, для целей модульного тестирования без фактического изменения какого-либо кода в исходном исходном пакете? И если нет, то как программисты справляются с этой проблемой в реальном мире, где тестером модуля может быть не тот человек, что кодер?