0
春ブーツ+ jdbctemplateスプリングブートテストでプロパティ値が認識されないのはなぜですか?
@Configuration
public class MultiDBConfig implements BeanPostProcessor{
@Value("${spring.datasource.test-while-idle}")
private boolean testWhileIdle;
//...
@Override
public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
if(bean instanceof org.apache.tomcat.jdbc.pool.DataSource){
org.apache.tomcat.jdbc.pool.DataSource ds = (org.apache.tomcat.jdbc.pool.DataSource) bean;
ds.setTestWhileIdle(testWhileIdle);
}
return bean;
}
}
と私はUserDaoTest
を持っていると私はエラー
Caused by: java.lang.IllegalArgumentException: Invalid boolean value [${spring.datasource.test-while-idle}]
at org.springframework.beans.propertyeditors.CustomBooleanEditor.setAsText(CustomBooleanEditor.java:123)
下になったテストを実行すると、最初に私はちょうど負荷の他のコンポーネント
@RunWith(SpringRunner.class)
@JdbcTest(includeFilters = @ComponentScan.Filter(type= FilterType.ASSIGNABLE_TYPE,value=UserDao.class))
@AutoConfigureTestDatabase(replace= AutoConfigureTestDatabase.Replace.NONE)
@Import(MultiDBConfig.class)
public class UserDaoTest {}
せずに、それをテストしたいです
変更の場合UserDaoTest
〜
@RunWith(SpringRunner.class)
@SpringBootTest
public class UserDaoTest {...}
大丈夫です。
なぜそれが解決されないのですか?spring.datasource.test-while-idle
はどうすれば解決できますか?
ですがどうですか?私は '@ TestPropertySource'と' @ PropertySource'を試しましたが、両方とも動作しません。 – zhuguowei
試してみてくださいhttp://www.javarticles.com/2016/02/spring-testpropertysource-annotation-example.html – ndrone