我創建了一個彈簧引導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