Ore*_*n A 3 database unit-testing repository
我正在观看这篇关于构建测试存储库的视频文章(由Jon Galloway和Jesse Liberty撰写),他们提到拥有数据库不是一个好主意,而是应该使用假存储库.他们给出的两个原因是:
1.数据库可能不可用,
2.单元测试应该集中在代码级别.
所以关于第一个,我从未遇到过我想要处理任何事情和测试环境的场景.数据库不可用,他们提出的第二点我没有得到.
那么在单元测试中使用DB是不好的做法吗?有什么潜在危害?
谢谢.
那么在单元测试中使用DB是不好的做法吗?
在单元测试中使用数据库是不好的,但在集成测试中则不行.单元测试的想法是测试应用程序的不同层隔离.将它们绑定到数据库使它们不再是单元测试,因为它们依赖于数据库,因此它们与单元测试的最基本规则之一相矛盾.
因此,当需要测试您的实际数据访问层(正在访问数据库的那个)时,您应该使用集成测试.在这些测试中,您应该设置一个测试数据库.理想情况下,此数据库应该处于每个集成测试的已知状态.为了实现这一点,您可以使用在测试夹具设置中创建数据库的脚本,并将整个集成测试执行到单个原子事务中,该事务将在测试夹具中拆除,以便数据库再次处于已知状态.下一次集成测试.
另一种方法(如果您使用的是ORM)是在集成测试中设置数据访问层,以使用内存数据库(例如SQLite),这些数据库将在每次测试时创建并解决.
| 归档时间: |
|
| 查看次数: |
64 次 |
| 最近记录: |