如题 ~~PHP测试很有必要,大家都是如何做的呢?
怎么规范自己的测试及其测试应注意什么?
如题 ~~PHP测试很有必要,大家都是如何做的呢?
怎么规范自己的测试及其测试应注意什么?
主要还是看框架是如何指导测试的。
codeigniter 用自己的写的类库进行简单的断言测试,测试结果直接输出到页面或者保存到文件。比较原始手工化。
Yii framework 用PHPUnit作为测试类库,另外还用了Selenium来模拟正式操作场景测试具体浏览器下面的操作结果。(Selenium的使用是比较虐心的一件事,相当于用代码模拟用户在浏览器上的每个操作后断言预期的结果)
Laravel 同样是采用PHPUnit作为测试类库,以测试后面业务逻辑为主,但是在针对前端的测试上主要是针对生成的Html页面的内容来进行一些简单的断言。
我知道测试类库除了PHPUnit之外还有SimpleTest,不过没有使用与了解过。
代码测试覆盖率达到80%左右应该也就差不多了,没有追求100%的必要。毕竟,需求是动态的。
单元测试能做,首先依赖于编写的代码,写的随意的代码,是很难做单测的,所以,第一项工作就是要编写可以测试的代码,所以开发的时候就要考虑怎么测试,如果能遵循测试驱动开发,敲码前先写单测,那更好;
第二项工作,就是单测的编写了。往往打桩是比较麻烦的,但是越大的系统,依赖的外部组件和系统越多,不打桩根本无法测试。目前phpunit有支持打桩。
第三,如果是旧项目,代码写的随意,缺少封装,过程式的,甚至是面包屑代码,如何测试?我能想到的,要么重构代码,要么就得做大量的打桩工作;即使如此,也不能保证真的就能对这些代码进行单测。
以前我用thinkphp写程序,然后想做一下单元测试,然后就没有然后了。
一般基本的流程走一遍,测试下。一般的框架都有调试模式,开启了多调试调试~
在工作不忙的时候,是单元测试和restTest一起做的。忙的时候就做restTest就行了。
但愿测试就不细说了。
restTest就是用php写一个和项目中联系紧密的rest客户端,然后用php自带的httpServer做服务器启动项目(注意选择测试库),然后用unittest跑脚本一个个的访问rest接口。判断错误等等。
单元测试,PHPUnit
做一个hook 然后手写测试代码然后看结果
很少去做测试,一般情况都是编译下,没有问题就可以了。