Temporary Doctrine2 fixtures for testing with phpunit

南楼画角 提交于 2019-12-31 14:31:16

问题


I have an application built on Symfony2 + Doctrine2 which I want to create some tests for (using phpunit).

For example if I want to test a unique validator against a record in the DB, I want to create a record I can work with, but after the test I don't need it anymore. So is there a way to create temporary (or virtual) fixtures or do I have to manually create and delete them?


回答1:


You can use Doctrine DataFixture and put this code in your setUp method of a unit test class:

$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());

You can refer to the docs to see how create DataFixture classes.

Here is a good example of how to do it: Symfony 2 + Doctrine 2 + PHPUnit 3.5: Serialization of closure exception

PS: I assume you have a working $em (EntityManager) in this example.



来源:https://stackoverflow.com/questions/9196035/temporary-doctrine2-fixtures-for-testing-with-phpunit

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!