【问题标题】:Junit test that persist in mysql持续存在于 mysql 中的 Junit 测试
【发布时间】:2015-09-03 13:26:00
【问题描述】:

是否可以使用 hibernate / jpa 编写在 mysql 中持久存在的 junit 测试?

如果有的话,有什么可用的例子吗?
我正在为我的应用程序使用 spring/hibernate

【问题讨论】:

    标签: spring hibernate jpa junit4


    【解决方案1】:

    当您有真正的数据库连接时,我不会将您的测试称为unit test,而更像是integration test。老实说,在大多数情况下,这种测试并不是一个好主意。它需要一些维护(每次您在 db 中发生更改时),并且在大多数情况下只是测试是否可以连接 do 数据库(并保存一些简单的对象)。

    专注于为领域级别的类编写好的测试。简单的数据库集成测试只会给您提供高质量应用程序的错觉。

    【讨论】:

    • 实际上我有一个 android 设备用于通过 web 服务与我的服务器通信。所以我依赖android来测试我的保存方法是否有效。这就是为什么我想为这个方法写一个junit,看看它是否存在于db中。我的数据库是一个测试数据库。所以我可以用它做任何事情(删除/添加),这是一个我正在保存的简单对象
    【解决方案2】:

    如果你想编写一个看起来像单元测试的集成测试,你可以试试Arquillian

    Arquillian 所做的基本上是启动一个应用程序容器(我认为 Glassfish 是默认的),然后它在容器中部署您的服务器端应用程序并针对刚刚部署的应用程序运行测试。

    您在单元测试中编写的是真正的客户端代码,因此您正在有效运行的是集成测试(使用真实的数据库和您在真实环境中拥有的所有服务),只是在类似 junit 中方式。

    他们还有一个特定的tutorial 用于持久性测试。

    【讨论】:

      猜你喜欢
      • 2015-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 2015-02-27
      • 1970-01-01
      相关资源
      最近更新 更多