所以我没有模拟 HazelcastInstance,因为我的代码需要缓存中的数据来测试它们的功能。如果我模拟 HazelcastInstance,我将无法模拟返回缓存数据的 getMap() 方法。如果我确实模拟它,我无法让它返回一个虚拟对象,因为据我所知, IMap<> 无法初始化。所以这在 kotlin 代码中是不可能的
myDummyMap : IMap
现在的问题是,在单元测试之后,hazel 的实例不仅持续存在,而且还加入了主应用程序集群
您可以轻松模拟 IMap,而不是模拟 HZ 实例。这比启动 HZ 实例进行单元测试要容易得多。
@Test
void testMockIMap() {
IMap<String, Integer> mockMap = Mockito.mock(IMap.class);
Mockito.when(mockMap.get("key1")).thenReturn(1);
Integer result = mockMap.get("key1");
Assertions.assertEquals(1, result);
}