【发布时间】:2016-01-07 04:12:15
【问题描述】:
我有一个现有的 Spring Boot 应用程序,我正在向它添加 junit tests。该项目在包含 bean 配置的 src/main/java 文件夹中有 Configuration.java。
在我的junit 类中,当我使用
@SpringApplicationConfiguration(classes = Configuration.class)
然后 Autowired bean 正确初始化。但是,当我在 src/test/java 中复制相同的配置文件并使用 Configuration 引用它时
@SpringApplicationConfiguration(classes = TestConfig.class)
然后自动装配 bean 无法初始化并给出异常 NoSuchBeanDefinitionException。
它是相同的配置java文件。我正在自动装配的 bean 存在于 src/main/java 中。 bean 配置 java 文件的位置会影响 bean 初始化吗?如果是,如何解决?
注意:我将相同的配置 java 文件复制到 src/test/java,因为我在测试时需要一些不同的属性。
【问题讨论】:
-
为什么要复制...只需创建一个仅包含差异的新文件,然后加载两个文件...不要复制配置。
-
在这种情况下如何选择在运行测试和运行主应用程序时加载哪个文件?
-
让测试加载主配置和测试配置。您的应用不会改变。
标签: spring junit spring-boot