以前用测试接口就是用PostMan + PHPStorm + Xdebug 进行调试,具体就是配置好PHPStorm+ Xdebug后,用PostMan发送申请时,减少参数:XDEBUG_SESSION_START=PHPSTORM。如下图: 

PostMan+Xdebug的形式测试根本也能够了,然而测试粒度还是有点大,每次测试都要正儿八经用postman发一次申请来验证后果,稍显麻烦。当初新公司用的框架是Yii2.0框架,看文档时发现Yii2.0框架集成了Codeception单元测试,最早的时候网上查PHP单元测试,很多大神说PHP开发根本没人用单元测试,于是也就没去理解,所以始终就是用Postman测试,本人也在网上出于好奇心也看看PHP单元测试的教程,大都是简略的Assert.equel或者是Assert.isEmpty这种判断是否等于后果值或者是否等于空的举例而已,感觉没什么意意,也就放弃了,直到前天正儿八经的去想着单元测试是否把后果打印进去,而不是简略断言,于是就去钻研Yii2集成的Codeception单元测试框架,然而无论是官网上文档还是网上网友的帖子都是简略介绍,没有我冀望的内容,没方法只能埋头苦干,于是得货了,分享进去,心愿跟我一样菜的须要“工欲善必先利其器”的菜鸟们能失去帮忙。先用Composer装置Codeception,Yii2官网有介绍,装置后如下图:

装置好之后,当然配置Codeception形式执行测试了,如下图:

为PHPStorm配置Codeception,如下图:

这我写的一个接口须要调用的办法,外面是用Yii2框架的HttpClient发送http申请获取携程的Token,当初我想对我这个办法进行测试,而不是把调用这个办法的接口写好再用PostMan来测试。先在要测试的办法所在类的类名处右键,new一个单元测试类,选Codeception,抉择测试的办法,如下图:

会在Tests 目录下的unit目录生成对象的测试类,类名以要测试的类加后缀“Test”结尾。如下图

我在测试方法里打个断点,如图

在测试类的测试方法左上角有个绿色三角形按钮,点击,抉择用Codeception测试。如图:

点击测试后,会运行到刚刚打断点的中央,接下去就能够从容的单步单元测试调试了。

我最后原本尝试测试的时候用Yii2日志性能写日志,前面发现始终没有去写日志,也是偶尔发现能够用Xdebug单步调试,通过单步调试,Codecetion调用的Logger类是它本人的,尽管我配置了Yii2框架的Log组件,如图:

通过Xdebug的单步调试,通过Codeception单元测试,发现调用Yii2的Log最终调用的是Codeception包里的一个Debug类,如下图,留神看类的正文阐明,写明了此类会在--debug模式下起作用(红框里英文正文)。

用命令行的形式执行单元测试,加上--debug选项,会间接打印出想要用Yii2写日志文件的内容。如下图:

原本边钻研的时候就应该记录,无奈明天和老婆吵架心烦意乱忽然想起要开始尝试着去分享货色了,这才想起把前两天本人的成绩分享进去,图片和素材都是长期操作截图补的,还有这个是联合Yii2的单元测试而已,其余框架的应该也相似,感觉写货色还蛮有意思的,尽管要花不少工夫,第一次写货色。