【发布时间】:2015-09-03 13:26:00
【问题描述】:
是否可以使用 hibernate / jpa 编写在 mysql 中持久存在的 junit 测试?
如果有的话,有什么可用的例子吗?
我正在为我的应用程序使用 spring/hibernate
【问题讨论】:
标签: spring hibernate jpa junit4
是否可以使用 hibernate / jpa 编写在 mysql 中持久存在的 junit 测试?
如果有的话,有什么可用的例子吗?
我正在为我的应用程序使用 spring/hibernate
【问题讨论】:
标签: spring hibernate jpa junit4
当您有真正的数据库连接时,我不会将您的测试称为unit test,而更像是integration test。老实说,在大多数情况下,这种测试并不是一个好主意。它需要一些维护(每次您在 db 中发生更改时),并且在大多数情况下只是测试是否可以连接 do 数据库(并保存一些简单的对象)。
专注于为领域级别的类编写好的测试。简单的数据库集成测试只会给您提供高质量应用程序的错觉。
【讨论】:
如果你想编写一个看起来像单元测试的集成测试,你可以试试Arquillian。
Arquillian 所做的基本上是启动一个应用程序容器(我认为 Glassfish 是默认的),然后它在容器中部署您的服务器端应用程序并针对刚刚部署的应用程序运行测试。
您在单元测试中编写的是真正的客户端代码,因此您正在有效运行的是集成测试(使用真实的数据库和您在真实环境中拥有的所有服务),只是在类似 junit 中方式。
他们还有一个特定的tutorial 用于持久性测试。
【讨论】: