gpt4 book ai didi

java - 测试 Hibernate 映射的最佳实践

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:15:42 25 4
gpt4 key购买 nike

我想知道人们找到了哪些最佳实践来测试 Hibernate 映射和查询?

这不能通过单元测试来完成,所以我的经验是编写仅向下测试 DAO 层的集成测试。这样我就可以完全测试每个 Insert/Update/Delete/ReadQueries,而无需测试完整的端到端解决方案。

无论何时运行集成测试套件,它都会:-

  1. 删除并重新创建数据库。
  2. 运行包含数据子集的导入 SQL 脚本。
  3. 在回滚事务的事务上下文中运行每个测试。因此,它可以作为独立测试或作为套件的一部分运行多次,并且返回相同的结果,因为数据库始终处于已知状态。

我从不针对不同的“内存中”数据库进行测试,因为总有一个等效的开发数据库可供测试。

我从未需要使用 DBUnit。

最佳答案

切勿为此使用 DbUnit。对于这种级别的测试来说,开销太大了。

特别是如果您在应用程序中使用 Spring,请查看 Spring Test Framework帮助管理您的数据访问测试,尤其是 transaction management features .

“等效开发数据库”很好,但内存中 H2 database为了速度会吹走任何其他东西。这很重要,因为虽然这些测试的单元/集成状态可能存在争议,但它们是您希望经常运行的测试,因此它们需要尽可能快。

所以我的 DAO 测试看起来像这样:

  1. Spring 管理 SessionFactoryTransactionManager
  2. Spring 处理测试方法的所有事务。
  3. Hibernate 在内存中的 H2 数据库中创建当前模式。
  4. 测试所有的保存、加载、删除和查找方法,对前后对象进行字段对字段比较。 (例如,创建对象 foo1,保存它,将其加载为 foo2,验证 foo1foo2 包含相同的值。 )

非常轻巧,对于快速反馈很有用。

关于java - 测试 Hibernate 映射的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7785114/

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