我有多个使用相同HazelcastInstance的junit测试。
我有一个@After方法来删除所有地图,手动逐一列出。
有没有一种方法可以重置HazelcastInstance中的数据,包括IMap,ReplicatedMap和IList,以便我只能打一个电话来重置缓存?
这是我现在正在做的事情:
@After
public void afterEachTest() {
hazelcastInstance.getReplicatedMap(MAP_NAME_A).clear();
hazelcastInstance.getReplicatedMap(MAP_NAME_B).clear();
hazelcastInstance.getReplicatedMap(MAP_NAME_C).clear();
hazelcastInstance.getMap(MAP_NAME_D).clear();
hazelcastInstance.getList(MAP_NAME_E).clear();
}
提前致谢!
最佳答案
那可能会满足您的需求。
hazelcast.getDistributedObjects()
.forEach(distributedObject -> distributedObject.destroy());
此外,如果您已经有对分布式对象的引用,则仍可以使用它们而无需重新初始化,例如plicatedMap = hazelcastInstance.getReplicatedMap(MAP_NAME_A)