У меня уже есть весенний ehcache в приложении весенней загрузки. 1 API реализован для удаления кеша. И я пишу джунты для этого.
Вот код конфигурации cacheManager в моей Конфигурации. java
@Bean
public CacheManager cacheManager()
{
EhCacheManagerFactoryBean factoryBean = new EhCacheManagerFactoryBean();
factoryBean.setConfigLocation(new ClassPathResource("ehcache.xml"));
factoryBean.setShared(true);
return new EhCacheCacheManager(factoryBean.getObject());
}
В моем тестовом классе я не могу издеваться над CacheManager, поскольку не умеет читать ehcache. xml.
Вот мой класс testClass:
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Mockito.when;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.context.TestConfiguration;
import org.springframework.cache.CacheManager;
import org.springframework.cache.ehcache.EhCacheCacheManager;
import org.springframework.cache.ehcache.EhCacheManagerFactoryBean;
import org.springframework.context.annotation.Bean;
import org.springframework.core.io.ClassPathResource;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.util.ReflectionTestUtils;
@SpringBootTest
@RunWith(SpringRunner.class)
public class DriverServiceTest
{
@InjectMocks
private DriverServiceImpl driverServiceImpl = null;
@Mock
private DriverMongoRepository mongoRepository;
@Autowired
private CacheManager ehCacheManager;
@TestConfiguration
public static class TestConfig
{
@Bean
public CacheManager cacheManager()
{
EhCacheManagerFactoryBean factoryBean = new EhCacheManagerFactoryBean();
factoryBean.setConfigLocation(new ClassPathResource("ehcache.xml"));
factoryBean.setShared(true);
return new EhCacheCacheManager(factoryBean.getObject());
}
}
@Before
public void setUp()
{
MockitoAnnotations.initMocks(this);
}
@Test
public void testEvictCache() throws Exception
{
//Trying to mock ehCacheManager similar to cacheManager() of configuration.java
String response = driverServiceImpl.evictCache("dummyUser", "getDriver", "1");
}
}
Поскольку мой ehCacheManager неправильно смоделирован, я получаю нулевой указатель на Cache cache = ehCacheManager.getCache ("getDriver");
Может кто-нибудь помочь мне смоделировать CacheManager, аналогичный cacheManager () конфигурации. java
Надеюсь, мой вопрос понятен !! Заранее спасибо