是否可以一次从 HazelcastInstance(地图和列表)中删除所有数据?

Is it possible to remove all data from HazelcastInstance (maps & lists) at once?

我有多个使用相同 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 实例。其他选项显然是为每个测试创建一个新的 Hazelcast 实例,或者 mock/fake 用于单元测试的 Hazelcast 实例。

这可能会满足您的需要。

            hazelcast.getDistributedObjects()
                     .forEach(distributedObject -> distributedObject.destroy());

此外,如果您已经拥有对分布式对象的引用,您仍然可以使用它们而无需重新初始化,例如 replicatedMap = hazelcastInstance.getReplicatedMap(MAP_NAME_A)