java - 如何使用 Powermockito 测试缓存

标签 java caching mockito

我想使用mockito测试我的缓存:

@Before
public void init() {
    cacheManager = PowerMockito.mock(CacheManager.class);
    cache = PowerMockito.mock(Cache.class);
}

@Test
public void test_Cache() throws Exception {

    ReflectionTestUtils.setField(csvReaderService, "csvFile", csvFileOK);

    Cache cache = cacheManager.getCache(CACHE_NAME);

    assertNotNull(cache);
    assertEquals(0, cache.getSize());

    csvReaderService.readCSV();

    cache = cacheManager.getCache(CACHE_NAME);
    // In cache should be 1 record
    assertNotNull(cache);
    assertEquals(1, cache.getSize());
}

我在 assertNotNull(cache); 中收到错误,这意味着缓存为空。 我应该在调用“cacheManager.getCache(CACHE_NAME)”之前在某处初始化“cacheManager”吗?

最佳答案

您必须设置模拟方法:

when(cacheManager.getCache(any(String.class))).thenReturn(cache );    

关于java - 如何使用 Powermockito 测试缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31677091/

相关文章:

java - 使用 FileInputStream 从相对路径和绝对路径加载属性

java - 如何根据使用的带宽监控正在使用的端口?

php - 在全动态和重数据库网站中使用memcached好吗?

java - 如何使用mockito在Junit中获取org.apache.felix.scr.annotations.Reference?

java - 当我们无法将模拟对象传递给类的实例时如何使用 Mockito

java - 将 @EmbeddedId 与 JpaRepository 一起使用

java - 没有 switch 语句的 Java 工厂

java - GWT 中静态文件的缓存

Python Requests-Cache 仍在查询远程 URL

java - JUnit/Mockito 测试用例在 Debug模式下通过但在运行模式下未通过