![](/img/trans.png)
[英]Junit test spring controller mockMvc @ContextConfiguration
[英]Mock the Spring Environment Object In Junit with @ContextConfiguration
我有這樣的測試
RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = { AppConfig.class, TestConfig.class})
public class MyTest {
........
}
AppConfig是我的應用程序的主要配置,TestConfig是加載測試屬性的測試配置
@Configuration
@PropertySource("classpath:test_dev.properties")
public class DevConfig {
@Bean
public DataSource getDataDataSource() {
BasicDataSource dataSource = new BasicDataSource();
dataSource.setDriverClassName(env.getProperty("driverclass"));
dataSource.setUrl(env.getProperty("url"));
dataSource.setUsername(env.getProperty("username"));
dataSource.setPassword(env.getProperty("password"));
return dataSource;
}
}
問題是test_dev.properties文件具有加密的密碼字段driverclass = ojdbc:xxx
url = xxxxxx
username = abc
password = #'"@~£$%
我需要使用解密器對其進行解密,然后使用env對象上的解密密碼。 因此env.get(“ password”),真實密碼將返回
所以我的問題是如何在創建數據源對象之前模擬環境對象。
就我而言,我想模擬數據源對象上的密碼
我首先讓數據源bean初始化,然后在集成測試中自動連接mybatis環境(不要與springs環境混淆)。
從環境中可以獲取數據源。
在@beforetest部分中,技巧是使用Reflectiontestutils.setfield在數據源上設置密碼字段
或者,您可以將整個數據源注入目標環境,但是我沒有嘗試
使用Spring的主要動機是輕松注入模擬對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.