临时Doctrine2灯具用于测试phpunit

时间:2012-02-08 15:14:34

标签: testing symfony doctrine-orm phpunit fixtures

我有一个基于Symfony2 + Doctrine2构建的应用程序,我想为(使用phpunit)创建一些测试。

例如,如果我想针对数据库中的记录测试唯一验证器,我想创建一个我可以使用的记录,但在测试后我不再需要它了。那么有没有办法创建临时(或虚拟)灯具,还是我必须手动创建和删除它们?

1 个答案:

答案 0 :(得分:20)

您可以使用Doctrine DataFixture并将此代码放入单元测试类的setUp方法中:

$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)。