我想知道人们发现他们的最佳实践是测试Hibernate映射和查询吗?测试Hibernate映射的最佳实践
这不能用单元测试完成,所以我的经验是编写集成测试,它只向下测试DAO层。通过这种方式,我可以完全测试每个插入/更新/删除/ ReadQueries,而无需测试完整的端到端解决方案。
每当集成测试套件运行它会: -
- 删除并重新创建数据库。
- 运行包含数据子集的导入SQL脚本。
- 在回滚事务的事务性上下文中运行每个测试。因此,它可以作为独立测试运行多次,或作为套件的一部分运行,并且由于数据库始终处于已知状态,因此会返回相同的结果。
我从不测试一个不同的“内存”数据库,因为总是有一个等效的开发数据库来测试。
我从来没有必要使用DBUnit。
感谢您的反馈(和其他人!!)。知道别人做什么非常有用。你能澄清,如果你的测试回滚插入/更新/删除?我的想法是数据库应该处于相同的状态,因为如果你想重新运行一个单独的测试或者测试类。如果测试改变数据库,理论上你可以改变每次运行测试的行为。 – Alex
是的。 Spring测试框架处理这个问题。 –
那么对于那些不使用弹簧的人来说最好的解决方案。 – monksy