0
因此,Zend的phpunit數據庫框架允許用表預裝數據庫。但是,這會阻止我在數據庫中使用@dataProvider,因爲在zend重新加載數據庫之前,似乎會執行@dataProvider。這會導致數據庫表不同步。重新排列@dataProvider和數據庫設置的順序
有沒有辦法我可以重新安排這個程序,以便zend重新加載數據庫,然後@dataProvider被調用?
因此,Zend的phpunit數據庫框架允許用表預裝數據庫。但是,這會阻止我在數據庫中使用@dataProvider,因爲在zend重新加載數據庫之前,似乎會執行@dataProvider。這會導致數據庫表不同步。重新排列@dataProvider和數據庫設置的順序
有沒有辦法我可以重新安排這個程序,以便zend重新加載數據庫,然後@dataProvider被調用?
Zend何時加載您的數據庫?如果您從setUp()
專門調用它,則可以將調用移至數據提供者方法。這並不理想,但PHPUnit調用數據提供者的方式是其架構的核心。塞巴斯蒂安正在計劃重寫這一點,但我不知道它的優先級列表有多高。
編輯:塞巴斯蒂安創建了一張票據,討論基於@depends
重新排序測試 - 當數據提供者被調用時不會改變。我對這種混亂表示歉意。
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
@Ray H - 該方法可能是從'setUp()'調用的,這意味着你被卡住了。您可以複製和修改Zend的測試用例類,而不是擴展它,並讓數據提供者方法執行數據設置。這是我爲我們的Zend控制器和查看腳本測試所做的,因爲我需要更多的控制權,並希望將它們分開。 – 2011-04-14 17:01:28