Java 在集成测试期间不要创建Springbean
我有一个Spring配置类,希望在应用程序运行时加载它Java 在集成测试期间不要创建Springbean,java,spring,spring-boot,Java,Spring,Spring Boot,我有一个Spring配置类,希望在应用程序运行时加载它 @Configuration public class EventHubConfiguration { @Bean @ConfigurationProperties(...) public EventHubClient someClient(final String namespace, final String eventHubName,
@Configuration
public class EventHubConfiguration {
@Bean
@ConfigurationProperties(...)
public EventHubClient someClient(final String namespace,
final String eventHubName,
final String sasKeyName,
final String sasKey) throws IOException, EventHubException {
ConnectionStringBuilder connStr = new ConnectionStringBuilder()
.setNamespaceName(namespace)
.setEventHubName(eventHubName)
.setSasKeyName(sasKeyName)
.setSasKey(sasKey);
return EventHubClient.createSync(connStr.toString(), Executors.newSingleThreadScheduledExecutor());
}
}
但是,在集成测试运行时,如何防止加载它呢。例如,当我进行mvn清理测试时,或者作为构建的一部分。我不希望在集成测试期间创建eventhub客户端。正如我在spring文档中看到的:
3.2.2。测试夹具的依赖注入
当TestContext框架加载应用程序上下文时,它可以选择使用依赖项注入来配置测试类的实例。这为使用应用程序上下文中的预配置bean来设置测试装置提供了一种方便的机制
因此,是的,您的测试类必须是一个bean使用单独的概要文件,或者首先模拟该bean,在测试上下文中使用@Primary
+@bean
,使用适合您的@ConditionalOn(…)
变量,可能还有许多我不知道的方法,以便DI容器工作,您需要一个bean,即使只是一个试验假人。