【发布时间】:2020-02-15 11:00:30
【问题描述】:
我正在使用 SpringBoot 框架开发多模块 maven 项目。 项目分为4个模块:rest模块、service模块、repository模块、domain模块。 我正在尝试为位于服务模块中的 java 中的配置类编写单元测试。 我已经简化了案例以摆脱业务逻辑的复杂性。配置类如下:
@Configuration
@ConfigurationProperties(prefix = "x.y.feature", ignoreInvalidFields = false)
public class FeatureConfig {
private String featureUrl;
public String getFeatureUrl() {
return featureUrl;
}
public void setFeatureUrl(String FeatureUrl) {
this.featureUrl = featureUrl;
}
}
属性文件是application.properties。
x.y.feature.featureUrl=featureUrl
下面是不工作的单元测试。
@RunWith(SpringRunner.class)
@SpringBootTest(classes = { FeatureConfigTest.class })
public class FeatureConfigTest {
@Autowired
private FeatureConfig featureConfig;
@Test
public void testgetFeatureUrl() {
String expected ="featureUrl";
assertEquals(expected,featureConfig.getFeatureUrl());
}
}
当我运行单元测试时,它会抛出以下异常:
java.lang.IllegalStateException: Failed to load ApplicationContext
at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:125)
at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:108)
【问题讨论】:
标签: java spring-boot unit-testing