gpt4 book ai didi

php - 在 Symfony 中使用自定义数据库数据设置功能测试

转载 作者:搜寻专家 更新时间:2023-10-30 20:26:27 25 4
gpt4 key购买 nike

为了简单起见,假设我有这个架构。

MachineSiteUserTask 相关联。一个 Task 可以有许多(比如说至少二十个)不同的 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 个任务?

我看过http://symfony.com/doc/current/cookbook/testing/database.html和其他几页,我还没有找到任何概述如何做我所要求的事情的东西——对我来说这似乎是一个相当简单的测试用例。

因此,当然欢迎任何指点。谢谢。

最佳答案

看看 Doctrine Fixtures,它们允许您将受控数据集加载到数据库中进行测试,甚至可以确保您拥有一些初始数据。

symfony2 通过 DoctrineFixturesBundle. 与 doctrine fixtures 进行了很好的集成。

为确保有足够数据进行测试所需的所有实体编写固定装置。然后您可以使用 bundle 提供的控制台命令实际加载灯具。然后您可以像往常一样进行功能测试。

也可以按照这些文章对与数据库交互的代码进行单元测试。

http://symfony.com/doc/current/cookbook/testing/database.html

http://symfony.com/doc/current/cookbook/testing/doctrine.html

关于php - 在 Symfony 中使用自定义数据库数据设置功能测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31532730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com