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 {