Spring 在测试环境中启动 PropertySources
Spring Boot PropertySources in test environment
我有一个 application.properties 我试图在 bean 中自动连接的值
@Component
public class ConfigurationValues {
@Value("${my.host}") private String myHost
}
这在我 运行 应用程序时效果很好。但是,当我 运行 进行 JUnit 测试时,出现错误
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'my.host' in string value "${my.host}"
这是我的测试代码
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {Application.class})
public class AnotherDummyTest {
@Autowired
private ConfigurationValues configurationValues;
@Test
public void testValue() {
Assert.assertEquals("localhost", configurationValues.getMyHost());
}
}
此测试用例因我提到的 IllegalArgumentException 而失败。
试试这个:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class,
initializers = ConfigFileApplicationContextInitializer.class)
public class AnotherDummyTest {
我有一个 application.properties 我试图在 bean 中自动连接的值
@Component
public class ConfigurationValues {
@Value("${my.host}") private String myHost
}
这在我 运行 应用程序时效果很好。但是,当我 运行 进行 JUnit 测试时,出现错误
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'my.host' in string value "${my.host}"
这是我的测试代码
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = {Application.class})
public class AnotherDummyTest {
@Autowired
private ConfigurationValues configurationValues;
@Test
public void testValue() {
Assert.assertEquals("localhost", configurationValues.getMyHost());
}
}
此测试用例因我提到的 IllegalArgumentException 而失败。
试试这个:
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class,
initializers = ConfigFileApplicationContextInitializer.class)
public class AnotherDummyTest {