vin*_*nux 7 phpunit symfony doctrine-orm
有没有办法在Symfony 2应用程序中正确单元测试Doctrine模型?现在我正在编写通过控制器的功能测试,以确保我的应用程序正确存储(和CRUDing)数据.但这需要太长时间而且非常糟糕,因为我必须为每个套件设置灯具,并在套件完成后清除数据库.
我如何隔离Entity和EntityRepository单元测试?有关于此的教程吗?
我发现对单元测试有用的一个技巧是使用 sqlite 的基于文件的数据库。您可以在名为“emptydatabase.dat”的文件中创建空数据库表并使用 sqlite 加载它。现在,在测试结束时,您可以覆盖空数据库文件并从新数据库开始。
您可以使用以下代码创建空架构文件:
$classes = array(
$em->getClassMetadata('MyAPIBundle:Currency'),
$em->getClassMetadata('MyAPIBundle:Permission'),
$em->getClassMetadata('MyAPIBundle:Role'),
$em->getClassMetadata('MyAPIBundle:User'),
);
$tool = new \Doctrine\ORM\Tools\SchemaTool($em);
$tool->createSchema($classes);
rename($schemafile, dirname(__FILE__) . '/../Data/schema.dat');
print "Schema file was regenerated\n";
Run Code Online (Sandbox Code Playgroud)
还
我们还为每个需要运营的主要实体创建了一项服务,并轻松地自行测试了该独立服务。起初,我们在存储库中拥有所有内容,但这没有意义,但是通过将它们移至服务并模拟所有依赖对象,事情进展顺利
| 归档时间: |
|
| 查看次数: |
5128 次 |
| 最近记录: |