gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 05:59:27 26 4
gpt4 key购买 nike

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

public class Configurazione {
private DataSource dataSource;

public DataSource getDataSource() {
return dataSource;
}

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

我的 bean :

<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并注入(inject)数据源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 依赖项添加到项目中并调整脚本路径(这些脚本创建并填充测试中使用的数据库架构)。然后您使用该测试应用程序上下文运行测试

关于java - 如何在类测试中模拟数据源 spring bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52521787/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com