Java 使用ApplicationContext运行JUnit测试时禁用Hazelcast实例
我有这样的JUnit5测试,由于测试速度,我需要在运行测试时禁用创建Hazelcast实例。有没有什么方法可以在一个特定的测试中禁用HazelcastJava 使用ApplicationContext运行JUnit测试时禁用Hazelcast实例,java,spring-boot,hazelcast,junit5,Java,Spring Boot,Hazelcast,Junit5,我有这样的JUnit5测试,由于测试速度,我需要在运行测试时禁用创建Hazelcast实例。有没有什么方法可以在一个特定的测试中禁用Hazelcast @SpringBootTest @RunWith(SpringRunner.class) class MemoryTradeCommunicatorTest { // test cases.... } 您可以使用@Import仅加载所需的bean,并模拟Hazelcast bean,如下所示: @RunWith(SpringRunner.cla
@SpringBootTest
@RunWith(SpringRunner.class)
class MemoryTradeCommunicatorTest {
// test cases....
}
您可以使用
@Import
仅加载所需的bean,并模拟Hazelcast bean,如下所示:
@RunWith(SpringRunner.class)
@Import(value = {MemoryTradeCommunicator.class})
@MockBean
private CacheManager cacheManager;
class MemoryTradeCommunicatorTest {
// test cases....
}
其中CacheManager是您的Hazelcast实现。另外,不要忘了将您所需的其他bean声明到
@Import
有三种主要方法来解决您的问题。我假设您只需要禁用Hazelcast,并且您正在使用SpringBoot,尽管您没有明确提到它
test
profile,并在其中创建一个mock Hazelcast实例。实现在很大程度上取决于如何创建真正的Hazelcast实例(Spring引导或手动)spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.hazelcast.HazelcastAutoConfiguration
Hazelcast实例是由SpringBoot自动创建的,因此,我恐怕无法像您提到的那样通过Springbean处理来控制创建。有什么办法可以解决这个问题吗?我已经更新了我的答案。我今天试过了,第三种方法非常有效,谢谢!