9
我有一個應用程序構建在Symfony2 + Doctrine2上,我想爲(使用phpunit)創建一些測試。Temporary Doctrine2 fixtures for testing with phpunit
例如,如果我想測試一個唯一的驗證程序對數據庫中的記錄,我想創建一個記錄我可以使用,但測試後,我不再需要它。那麼有沒有辦法創建臨時(或虛擬)燈具,還是我必須手動創建和刪除它們?
我有一個應用程序構建在Symfony2 + Doctrine2上,我想爲(使用phpunit)創建一些測試。Temporary Doctrine2 fixtures for testing with phpunit
例如,如果我想測試一個唯一的驗證程序對數據庫中的記錄,我想創建一個記錄我可以使用,但測試後,我不再需要它。那麼有沒有辦法創建臨時(或虛擬)燈具,還是我必須手動創建和刪除它們?
您可以使用Doctrine DataFixture,並把這個代碼在單元測試類的設置方法
$loader = new Doctrine\Common\DataFixtures\Loader;
$loader->loadFromDirectory('/path/to/MyDataFixtures');
$purger = new Doctrine\Common\DataFixtures\Purger\ORMPurger($em);
$executor = new Doctrine\Common\DataFixtures\Executor\ORMExecutor($em, $purger);
$executor->execute($loader->getFixtures());
您可以參考文檔,瞭解如何創建DataFixture類。
這裏是如何做到這一點的好例子:Symfony 2 + Doctrine 2 + PHPUnit 3.5: Serialization of closure exception
PS:我假設你已經在這個例子中工作$ EM(EntityManager的)。
或者 $ loader = new \ Symfony \ Bridge \ Doctrine \ DataFixtures \ ContainerAwareLoader(static :: $ kernel-> getContainer()); 如果您需要使用實現ContainerAwareInterface的燈具。 另外,謝謝!剛剛使用了這個答案。 – skqr 2013-04-28 22:24:36
PRMPurger真的需要$ em來啓動它嗎? – Tjorriemorrie 2014-02-04 12:45:02
從src目錄加載所有燈具的最佳方法是什麼? – 2015-10-02 17:02:02