В моем проекте (приложение весенней загрузки) у меня около 200+ тестовых случаев. Недавно мы реализовали один фабричный компонент для менеджера кэша (ehcache), который находится в моем классе запуска (@SpringBootApplication).
Моя проблема заключается в том, что, когда один класс запуска с этим фабричным компонентом выполняется одним тестовым случаем, все последующие тестовые сценарии завершаются с ошибкой ...
"Другой CacheManager с таким же имя 'appCacheManager' уже существует в той же виртуальной машине. "
Чтобы решить эту проблему, я добавил метод разборки с таким телом, как этот ...
public void tearDown() {
MyCustomCacheManager customCacheManager = (MyCustomCacheManager) context.getBean("yourCustomCacheManagerBean");
try {
net.sf.ehcache.Cache cache = customCacheManager.getCache();
net.sf.ehcache.CacheManager cacheManager = cache.getCacheManager();
cacheManager.removeCache("nameOfYourCache");
} catch (IllegalAccessException e) {
e.printStackTrace();
}
context.destroy();
context = null;
}
По моей проблеме, я добавил этот метод разбора во всех существующих тестовых случаях.
Можем ли мы иметь что-то, что может быть реализовано, так что метод разрыва будет вызываться автоматически после каждого теста, мне не нужно добавлять разбор в каждый класс JUNIT ...
Может быть какой-то общий c разрыв с некоторой аннотацией в существующих тестовых случаях ...
Пожалуйста, совет .....