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