制作伪造的javax.sql.DataSource吗?

gav*_*koa 5 java testing spring datasource spring-test

我必须使用String Test框架编写测试,其中使用了许多数据库连接。

在测试中,我不需要所有数据源,但Spring希望它们全部注入。

是否有任何标准或众所周知的伪造javax.sql.DataSource实现只是为了满足Spring DI机制?

wal*_*ros 5

首选使用 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()

  }
}
Run Code Online (Sandbox Code Playgroud)


Spa*_*key 3

您可以使用Mockito框架。使用Springockito,您可以在 Spring 环境中模拟数据源。

此资源的功劳是针对此 SO 答案中的kubek2k