为了简单起见,我们说我有这种模式。
Machine
,Site
和User
与Task
相关联。 Task
可以有多个(比如说至少20个)不同的TaskDetail
。
Task
task_id (int PK)
machine_id (int FK)
user_id (int FK)
site_id (int FK)
task_name (varchar)
task_time (int)
TaskDetail
task_detail_id (int PK)
task_id (int FK)
task_detail_value (varchar)
Machine
machine_id (int PK)
machine_name (varchar)
User
user_id (int PK)
user_name (varchar)
user_register_time (int)
Site
site_id (int PK)
site_name (varchar)
如何使用Symfony最好地填充测试数据?我使用PHPUnit作为测试框架。
之前我曾在Symfony中编写功能测试,但从未测试数据库中的数据。它总是局限于更简单的测试(下拉菜单中包含以下项目等)。
例如,在我的任务列表页面上 - 我想测试出现的5个任务。我如何设置一个测试,以便我用5个任务填充数据库(我想我需要在某个地方进行硬编码?),然后测试该页面的输出是否显示了我创建的那5个任务? / p>
我查看了http://symfony.com/doc/current/cookbook/testing/database.html和其他一些页面,但我还没有找到任何概述如何做我要问的事情 - 这似乎是一个相当简单的测试案例我
所以任何指针都是受欢迎的。感谢。
答案 0 :(得分:2)
看看Doctrine Fixtures,它们允许您将受控数据集加载到数据库中进行测试,甚至确保您拥有一些初始数据。
symfony2通过DoctrineFixturesBundle.
与教条装置很好地融合为确保有足够数据进行测试所需的所有实体编写灯具。然后你可以使用bundle提供的控制台命令实际加载灯具。然后你可以像往常一样进行功能测试。
还要按照这些文章对与数据库交互的代码进行单元测试。
http://symfony.com/doc/current/cookbook/testing/database.html
http://symfony.com/doc/current/cookbook/testing/doctrine.html