我想用注入的数据源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。
答案 0 :(得分:1)
通常出于测试目的,会创建其他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依赖项添加到项目中,并调整脚本的路径(这些脚本创建并填充测试中使用的数据库模式)。 然后您在该测试应用程序上下文中运行测试