在tp5下使用默认的phpunit 的包的时候,遇到如下几个坑。
(我web环境在虚拟机里,本地mac和虚拟机共享同一个目录,源码在这个目录里,php都是 php7.1 )
1-在虚拟机里面执行 php unit 可以正常运行,在mac下运行报500错误,解决方法暂无。
2-当多个测试文件在一个目录下的时候,执行php think unit的时候,会出现前面的变量覆盖了后面的变量,经过好久调试没测试出结果(水平太差了😢)。后来使用 php think unit --filter 文件名 ,可以一次只执行一个,就没有问题。或者使用@group 标签
分组来实现,在执行的时候 加上 --group 分组名,就可以了。
3-当进行断言测试的时候,tp的phpunit包封装了一些类。
\tink\testing\PHPUnit_Framework_Assert 该类封装类常用的断言。
\think\testing\InteractsWithPagesg该类封装了常用的请求
\think\testing\AssertionsTrait封装了http请求响应的断言
\think\testing\CrawlerTrait 是http请求和断言的底层
通过 TestCast->maskRequest,返回一个当前对象,该对象的Response属性保存着一个think\response\Json的对象。
通过Json对象可以取到我们发起请求的响应信息。
https://phpunit.de/manual/current/zh_cn/appendixes.annotations.html#appendixes.annotations.group
网友评论