【发布时间】:2011-04-15 01:11:58
【问题描述】:
因此,Zend 的 phpunit 数据库框架允许预加载带有表的数据库。但是,这阻止了我将 @dataProvider 与数据库一起使用,因为 @dataProvider 似乎在 zend 重新加载数据库之前被执行。这会导致数据库表不同步。
有没有办法重新安排这个过程,让 zend 重新加载数据库,然后调用 @dataProvider?
【问题讨论】:
因此,Zend 的 phpunit 数据库框架允许预加载带有表的数据库。但是,这阻止了我将 @dataProvider 与数据库一起使用,因为 @dataProvider 似乎在 zend 重新加载数据库之前被执行。这会导致数据库表不同步。
有没有办法重新安排这个过程,让 zend 重新加载数据库,然后调用 @dataProvider?
【问题讨论】:
Zend 何时加载您的数据库?如果您专门从setUp() 调用它,则可以将调用移至数据提供者方法。这并不理想,但 PHPUnit 调用数据提供者的方式是其架构的核心。 Sebastian 计划在某个时间点上重做这一点,但我不知道它在优先级列表中的位置有多高。
编辑:Sebastian 创建了一张票,讨论了基于 @depends 的重新排序测试——在调用数据提供者时不会改变。对于造成的混乱,我深表歉意。
【讨论】:
setUp() 调用的,这意味着你被卡住了。您可以复制和修改 Zend 的测试用例类而不是扩展它,并让数据提供者方法进行数据设置。这就是我为 Zend 控制器和视图脚本测试所做的,因为我需要更多控制权并希望将它们分开。