您的配置会导致
ConfigurationSettings该类的2个实例,并且一个实例可能会覆盖另一个实例。
在
@Component扫描组件(
@ComponentScan)时,“
ConfigurationSettings”具有注释,这将导致一个实例。您还具有带
@Bean注释的方法,该方法也可以导致实例。后者被第一个覆盖。
简而言之,删除
@Component不需要的注释,因为您已经有了此类的工厂方法。
public class ConfigurationSettings { ... }
您还应该删除
@PropertySource注释,因为Spring-Boot已经
application.properties为您加载了注释。
最后,您不应
@ContextConfiguration在测试类上使用批注,而应
@SpringApplicationConfiguration在应用程序类(而非配置类!)中使用和。
@RunWith(SpringJUnit4ClassRunner.class)@SpringApplicationConfiguration(classes=OFAC.class)public class OFAConfigurationTest { @Autowired private Environment environment; @Autowired private ConfigurationSettings configurationSettings; @Test public void testConfigurationLoads() { assertNotNull(environment); assertNotNull(configurationSettings); } @Test public void testConfigurationSettingValues() { assertEquals("Product Name", configurationSettings.getProduct()); assertEquals("0.0.1", configurationSettings.getVersion()); assertEquals("2014 Product", configurationSettings.getCopyright()); }
这将解决您的运行时配置问题,并使您的测试使用Spring Boot的功能来配置您的应用程序。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)