我创建了一个弹簧引导1.4.0应用和我想使用YAML文件internationlize它。SpringBoot单元测试配置
我创建了一个类像它在文档中这里http://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html#boot-features-external-config-typesafe-configuration-properties解释加载从YAML文件中的配置。
我想创建一个测试来检查我的课已经正确地加载从YAML文件的属性。
如果我们保留文档中的示例如何创建一个将加载yaml文件(使用不同名称application.yml)的单元测试并检查方法getUsername()
是否将从yaml文件返回值?
这里是我的代码,但仍无法加载用户名:
@Component
@ConfigurationProperties(locations = "classpath:mylocalizedprops.yml", prefix="connection")
public class ConnectionProperties {
private String username;
// ... getters and setters
}
和测试类
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest(classes = Application.class)
public class InternationalizationTest {
@Autowired
private ConnectionProperties connectionProperties;
public void propsShouldBeNotNull() {
assertNotNull(connectionProperties);
}
public void userNameShouldBeCorrect() {
assertEquals(connectionProperties.getUsername(), expectedUserName);
}
}
我失败了userNameShouldBeCorrect测试。文件mylocalizedprops.yml位于Maven结构化应用程序的src/main/resources文件夹中。
是在'/ src目录/测试/ resources'或'的src/main/resources'文件?如果它在'src/main/resources'中,则需要将其放入测试资源中,或者将主源集加载为测试源集的一部分。 – Adam
它在src/main/resources中,但我认为最好在src/test/resources中创建一个用于测试的目的,我该怎么做? – jerome
复制并粘贴文件。缺点是你现在必须复制一切。 – Adam