我有一个基于Symfony2 + Doctrine2构建的应用程序,我想为(使用phpunit)创建一些测试。
例如,如果我想针对数据库中的记录测试唯一验证器,我想创建一个我可以使用的记录,但在测试后我不再需要它了。那么有没有办法创建临时(或虚拟)灯具,还是我必须手动创建和删除它们?
答案 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)。