时间:2021-07-01 10:21:17 帮助过:2人阅读
有多少人在PHP实际项目中真正系统化的使用到了自动测试,是否根据项目大小和复杂程度来判断使用自动测试和人工测试呢?
我觉得单元测试是由于软件规模的不断增大进而对代码可靠性要求不断提高而产生的.
PHP作为一种专为网页表现服务的语言在过去历史中用它写的项目一般都不大,我想原因有二:
1.PHP本身执行速度上的劣势阻碍了它成为后端主要语言
2.PHP本身的一些特性不适合大团队的协作开发(最早的PHP不支持OO,PHP5.3以前没有命名空间等...)
项目不大,PHP的单元测试需求自然不迫切.
但随着近年来技术的发展,PHP的速度越来越不是问题(redis,HHVM,PHP7等),而且从PHP5开始我们可以看到PHP的特性已经越来越适合大型团队的开发了(命名空间等概念的加入).另外随着IT界Saas等概念的兴起,网站服务也变得越来越复杂了.
所以,大型乃至超大型PHP项目已经出现了并且在未来肯定会更多,所以PHP单元测试的需求也会越来越多.
本人水平不高,以上认识难免有误,仅为一家之言,请轻拍
我觉得,不管项目大小,使用 phpunit 进行自动测试,是一种比较标准的规范吧
PHP擅长的是web开发,大部分都是简单的出库入库操作,业务逻辑非常少,推荐自动化验收测试为主,单元测试为辅。我的做法是验收测试和单元测试相结合从而覆盖整个测试用例。举个例子吧,注册功能写验收测试,同时对于用户名和密码校验的类进行单元测试。
我看到很多教科书上的教程会对控制器做单元测试,这样做不是不好,而是有点过了。
总之我的经验是:混合使用验收测试和单元测试,单元测试主要测试业务类。
自动化测试它会在代码发生修改后让你及时发现修改带来的代码错误,从而减少代码修改带来的bug数量。是否选择自动化测试我觉得还是基于上面这个原因来考虑会比较好一点。