【发布时间】:2012-01-26 07:07:59
【问题描述】:
我从开发人员那里继承了一个相当大的、自制的 php4+MySQL 电子商务项目,他们在编写程序时自学了编程和 html。 (我会不寒而栗,除了他们能够从头开始做这么多事情真的令人印象深刻。)我的工作是维护它并使用新功能推动它。
代码的功能取决于$_SESSION 数据和其他全局状态结构,进而影响代码的流程以及站点的哪些部分通过require 语句显示。当我去年接手它时,我的第一个任务是将所有重复内容抽象到单独的文件中,这些文件通过require 语句包含在内,并从“显示”或输出代码中删除大部分“逻辑”代码,但我不能不要全部删除。我已经将代码移到了我可以使用的函数中,但这仍然非常有限。类和方法现在绝对是不可能的。
所有测试都是手动/视觉完成的。我想开始自动化一些测试,但我根本不知道从哪里开始。函数的单元测试非常简单,但很少有代码在函数中,而且大部分都非常简单。我看过phpUnit 和DbUnit,但所有关于它们的示例和讨论都集中在类和方法上。
那么,除了项目中最琐碎的部分之外,我还有哪些选择可以开始实施单元测试?
【问题讨论】:
-
我的投票 - 进行非常增量的重构。
-
顺便说一句,对于旧的 PHP 实现,着眼于保护您的数据库查询免受 SQL 注入。 “继承”项目时最容易被忽视的问题...
-
您真的在运行 PHP4 服务器吗?它有 XDEBUG 可用吗?
-
首先,祝你好运!我们有一个类似的系统,尽管我们已经设法通过少量的 OO 代码至少将其安装到 PHP 5.3 上。我的建议是买这本书:informit.com/store/product.aspx?isbn=0131177052。它主要基于 OO,但 IIRC 有一节是关于程序代码的,它是必不可少的阅读材料。稍加思考即可将许多技巧应用于过程代码。
-
谢谢大家。我今天花了 PHPUnit + Selenium 设置和工作,我几乎对潜力垂涎三尺。我会在假期后发表更多评论并选择答案。
标签: php unit-testing phpunit legacy