【发布时间】:2023-03-21 13:38:01
【问题描述】:
我编写了一个存储库类,它采用javax.sql.DataSource 作为构造函数参数,并对其进行了一些基本的 CRUD 操作。我现在想为它编写junit测试。我想使用 HSQL 作为我的数据库进行这些测试,但我不确定如何按照我想要的方式设置数据库。使用 Spring 应用程序,我在我的应用程序上下文中放置了类似的内容以进行测试:
<jdbc:embedded-database id="dataSource">
<jdbc:script location="classpath:mySQLForDB.sql"/>
</jdbc:embedded-database>
但是,我想要测试的不是 Spring 应用程序。代码中是否有设置数据源并从 sql 文件设置数据库的代码?基本上,在功能上等同于 Spring 对 <jdbc:embedded-database> 标记所做的事情。
【问题讨论】:
-
好吧,如果它是针对您的存储库类的 junit 测试,我认为 Spring 仍然是一个有效的解决方案。只需使用您的存储库 bean 和可以放在
src/test/resource文件夹中的<jdbc:embedded.database>创建一个测试应用程序上下文很简单,如果您只是将 Spring 依赖项添加到测试类路径,应用程序将不知道 Spring。 -
我已经完成了这个思考过程。在最坏的情况下,我将只使用 Spring 进行测试,但如果可能的话,我宁愿不依赖 Spring 来运行测试。
标签: java unit-testing junit hsqldb