Я использую синглтон enum, который выглядит (несколько) так:
public enum mySingleton{
INSTANCE;
private static String myDrink = null;
public String getMyDrink(boolean isWizard)
{
if (myDrink == null)
{
if (isWizard)
myDrink = "Butterbeer";
else
myDrink = "Whiskey";
}
return myDrink;
}
//Some more functionality
//...
}
Теперь, чтобы протестировать этот синглтон, у меня есть несколько тестов, которые его используют.Но поскольку все тесты запускаются один за другим в одном и том же потоке, после запуска первого теста для всех остальных тестов устанавливается myDrink
.
Мне это не нравится.
Я думал об использовании @After
функции и использовании отражения, чтобы установить myDrink
в ноль.
Я попробовал это:
Field f = mySingleton.class.getField("myDrink");
f.setAccessible(true);
f.set(String.class, null);
Но я получаю java.lang.NoSuchFieldException
.
Как это можно сделать?