Краткий ответ: вы не можете сделать это правильно.Модульное тестирование и статика не очень хорошо играют вместе, у вас (почти) всегда будут проблемы, подобные той, которую вы упомянули.
Более длинный ответ: лучшим решением будет рефакторинг вашего кода.Даже если вам нужно поведение синглтона, у вас есть несколько вариантов (например, внедрение зависимости).Рекомендация Дэвида, конечно, также является вариантом, который, по крайней мере, позволит вам протестировать ваш кэш, но у вас могут возникнуть проблемы, когда вы хотите протестировать остальную систему.
Если по какой-то причине вы хотите придерживатьсяваш текущий дизайн вы все еще можете иметь некоторые (не обязательно хорошие) обходные пути.Некоторые примеры:
Проще всего добавить метод «cleanCache».В некоторых ситуациях это может быть даже полезно для остальной части системы, и каждый из ваших тестов может также сделать это в качестве первого шага (в «setup / beforeTest или аналогичных методах»).
Вы также можете игратьс видимостью и пусть ваши тесты выполняют очистку, которая не разрешена для остальной части кода.
Эти хаки, вероятно, будут работать до тех пор, пока вы не будете выполнять свои тесты параллельно.