关于php:YII2-Codeception-Xdebug-进行接口API测试及单元测试的实践

1次阅读

共计 1368 个字符,预计需要花费 4 分钟才能阅读完成。

 以前用测试接口就是用 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 的单元测试而已,其余框架的应该也相似, 感觉写货色还蛮有意思的,尽管要花不少工夫,第一次写货色。
正文完
 0