php - 如何对企业 symfony 项目进行单元测试?

标签 php unit-testing symfony1

我在工作中从事一个巨大的项目。我们有大约 200 个数据库表,因此有大量的模型、操作等。

我应该如何开始为此编写测试?

我最大的问题是,借助 symfony,您可以使用 lime 框架进行测试,这很棒。但大部分代码都是对数据库进行写入、删除或其他操作。那么如何在不与数据库交互的情况下测试模型呢?

我想进行单元测试,因为我的代码中存在错误问题,通过函数重构,但我什至不知道如何开始。文档中的示例仅涵盖非常小的功能。当操作文件超过 700 行代码时,它看起来如何?

最佳答案

好问题..我个人到处都遇到过这个问题。

这是我目前发现的:

1) 获取开发数据库。不要在生产数据库上测试!

2) 这听起来可能很老套,但从小而简单开始。

3) 我不知道你的领域是什么(电子商务数据库、联系人数据库等),但说它是一个电子商务数据库。首先测试创建一些订单模型并保存它们。也许在测试工具中重新创建一个真实的订单,以便将其保存到数据库中。现在您可以快速创建 1000 个订单来运行测试……比手动进行网络结账快得多。为了获得最大利益,请为您当前正在处理的事物创建一个模型,以便您可以在测试期间使用它。

4) 现在开始测试您的模型提供的各种方法。同样,坚持那些与您当前尝试修复/使用的内容相关的内容。不要担心测试所有内容,只需测试一些东西,并确保您可以重复测试。

5) 需要测试 Controller ?太棒了,现在你有了一个你不在乎搞砸的模型,因为它不是真实的......需要一些变化吗?创建更多测试套件来构建不同的模型以满足您的每个需求。模型可能很复杂,但您应该能够编写一些测试函数来创建各种模型的变体。然后针对那些运行你的 Controller ......

6) 继续减少代码覆盖率。

警告:小心不要成为唯一运行单元测试的人。您将很快成为最有效的问题解决者,但随后人们会试图让您解决所有问题...

关于php - 如何对企业 symfony 项目进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1732623/

相关文章:

php - 正则表达式提取尖括号之间的字符串,并且尖括号之间恰好有一个@字符

php - GWT、PHP 和 SSL 的最佳单服务器解决方案

PHP 从结果集中访问第 n 行

php - 对于 Web 开发商店(10 岁以上)来说,Symfony 是比 Zend 更好的选择吗,因为它是一个完整的堆栈框架?

php - 如何检测用户是否已登录 symfony?

javascript - 更改选择框的内容其他

Angular 分量测试错误: TypeError Cannot read property 'subscribe' of undefined

unit-testing - 一个测试用例似乎干扰了另一测试用例

objective-c - XCTAssertEqual 不适用于 double 值

symfony1 - Symfony Doctrine versionnable行为忽略字段