繁体   English   中英

如何在类测试中模拟数据源 spring bean

[英]How to mock a Datasource spring bean in class test

我想测试一个注入了数据源 bean 的类,但我不知道如何模拟 Bean 数据源(我没有这个类,只有 bean 配置)。 我的课是这样的:

public class Configurazione {
    private DataSource dataSource;

    public DataSource getDataSource() {
       return dataSource;
    }

    public void setDataSource(DataSource dataSource) {
        this.dataSource = dataSource;
    }
    ...
 }

我的豆子:

<bean id="Configurazione" class="com.company.configurazione.Configurazione">
    <property name="dataSource" ref="dataSourceMySql" />
</bean>
<bean name="dataSourceMySql"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="..." />
    <property name="username" value="..." />
    <property name="password" value="..." />
</bean>

如何使用 mockito 测试类 Configurazione 并注入数据源 bean? 我在测试类 Configurazione 中没有到 @mock 的 DataSource 类。

通常出于测试目的,会创建额外的 Spring 应用程序上下文。 你可以在那里以不同的方式定义 bean。 例如,您可以使用内存中的 HSQL 数据库作为数据源

  <jdbc:embedded-database id="dataSource" type="HSQL" >
    <jdbc:script location="scripts/ddl/sequences/*"/>
    <jdbc:script location="scripts/ddl/tables/*"/>
    <jdbc:script location="scripts/dml/*"/>
 </jdbc:embedded-database>

要按原样使用此代码片段,您需要向项目添加 hsql 依赖项并调整脚本路径(这些脚本创建并填充测试中使用的数据库架构)。 然后使用该测试应用程序上下文运行测试

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM