Jie*_*eng 5 junit database-testing
我认为数据库测试包含 CRUD 操作是很常见的。所以这些函数会修改数据库,使预期的值发生变化:例如。如果我测试 SELECT 返回 2 行,如果删除测试运行 1st,我可能会失败。类似于插入。JUnit 似乎没有按照定义运行测试,这使得期望值变得困难。
如果我在每次测试时都重新初始化我的数据库,它可能会矫枉过正而且速度很慢。那么我该如何解决这个问题呢?
是的,正如 Steve Hall 指出的,使用事务测试可以 100% 解决测试和测试运行之间的数据库一致性问题。Spring 为此类测试提供了非常精细的支持(请参阅TestContext Framework 中的事务管理),但如果没有它,实现起来并不困难。
在最终回滚事务的事务测试中,您可以自由地将任何 CRUD 操作应用于您的数据,只要它们是测试启动的事务的一部分。然后,在测试拆卸期间进行单次回滚可以消除对数据库的所有 CRUD 影响。
| 归档时间: |
|
| 查看次数: |
1218 次 |
| 最近记录: |