Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在集成测试期间不要创建Springbean_Java_Spring_Spring Boot - Fatal编程技术网

Java 在集成测试期间不要创建Springbean

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,

我有一个Spring配置类,希望在应用程序运行时加载它

@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,即使只是一个试验假人。