我必须使用字符串测试框架编写测试,其中使用了许多数据库连接。
在测试中,我不需要所有的数据源,但 Spring 希望它们全部注入(inject)。
是否有任何标准或众所周知的伪造 javax.sql.DataSource 实现只是为了满足 Spring DI 机制?
最佳答案
首选使用 Mockito(或其他模拟框架)(正如其他答案中所指出的)。但是,如果您只想建立应用程序上下文(不提示数据源),您可以使用 org.springframework.jdbc.datasource.SimpleDriverDataSource
。
您需要使用覆盖原始 bean 的名称向上下文提供 bean,并确保首先扫描您的假 bean。
@Configuration
public class MyFakeConfig {
@Bean(name = "NAME OF THE ORIGINAL BEAN TO OVERRIDE")
public DataSource fakeDataSource() {
return new SimpleDriverDataSource()
}
}
关于java - 制作一个假的 javax.sql.DataSource?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24290633/