2011-04-13 44 views
0

因此,Zend的phpunit数据库框架允许用表预装数据库。但是,这会阻止我在数据库中使用@dataProvider,因为在zend重新加载数据库之前,似乎会执行@dataProvider。这会导致数据库表不同步。重新排列@dataProvider和数据库设置的顺序

有没有办法我可以重新安排这个程序,以便zend重新加载数据库,然后@dataProvider被调用?

回答

1

Zend何时加载您的数据库?如果您从setUp()专门调用它,则可以将调用移至数据提供者方法。这并不理想,但PHPUnit调用数据提供者的方式是其架构的核心。塞巴斯蒂安正在计划重写这一点,但我不知道它的优先级列表有多高。

编辑:塞巴斯蒂安创建了一张票据,讨论基于@depends重新排序测试 - 当数据提供者被调用时不会改变。我对这种混乱表示歉意。

+0

Zend的延伸数据库测试用例并覆盖此方法: ' 保护的函数getSetUpOperation() { 返回新PHPUnit_Extensions_Database_Operation_Composite(阵列( 新Zend_Test_PHPUnit_Db_Operation_Truncate(), 新Zend_Test_PHPUnit_Db_Operation_Insert(), )); } ' – 2011-04-14 16:57:46

+0

@Ray H - 该方法可能是从'setUp()'调用的,这意味着你被卡住了。您可以复制和修改Zend的测试用例类,而不是扩展它,并让数据提供者方法执行数据设置。这是我为我们的Zend控制器和查看脚本测试所做的,因为我需要更多的控制权,并希望将它们分开。 – 2011-04-14 17:01:28

相关问题