Я пытаюсь написать модульный тест для устаревшего кода . Класс, который я тестирую, имеет несколько статических переменных. В моем тестовом классе есть несколько @Test
методов. Следовательно, все они имеют одно и то же состояние.
Есть ли способ сбросить все статические переменные между тестами?
Одно из решений, которое я придумал, - это явно сбросить каждое поле, например.:
field(MyUnit.class, "staticString").set(null, null);
((Map) field(MyUnit.class, "staticFinalHashMap").get(null)).clear();
Как видите, каждая переменная требует пользовательской инициализации re -. Подход непросто масштабировать, таких классов в легаси-кодовой базе очень много. Есть ли способ сбросить все сразу? Может быть, перезагружая класс каждый раз?
В качестве возможного хорошего решения я думаю использовать что-то вроде powermock и создавать отдельный загрузчик классов для каждого теста. Но я не вижу простого способа сделать это.