Hap*_*per 4 database tdd phpunit unit-testing symfony
我想为我的所有CRUD创建测试.但是如何为它们设置单独的数据库?这是最好的方式吗?
这是另一个问题,但它是相关的:我是否应该在生产服务器中运行测试?有时在不同的环境中事情会出错,所以我想我应该这样做.但后来我需要提到的单独的数据库,对吗?
有什么建议?
Mit*_*eat 10
在生产服务器上运行任何类型的测试通常都是一个坏主意(除非它只是尚未进行调整的生产硬件).
单元测试不会命中数据库(或任何其他外部系统).因此,为了创建单元测试,您需要删除对数据库的依赖性.
您称之为"单元测试"的可能是集成测试.利用外部系统(例如数据库,文件系统等)的任何测试都是集成测试.
您的问题的两个常见解决方案是:
在测试开始时,将包含已知数据的数据库备份还原到单独的测试数据库,然后针对它执行测试.
使用"固定"的已知测试数据库,在每个测试开始时启动一个事务,执行测试然后回滚事务以使数据库处于相同的已知状态.
(1号通常是优选的,因为(2)中的数据库可能变得"污染").
归档时间: |
|
查看次数: |
1378 次 |
最近记录: |