单元测试 - 运行机制 ¶
作者:KK
发表日期:2015.12.13
哪些测试代码才被运行 ¶
就像HelloWorld这个测试用例里的testMe
方法一样,如果你再复制一份这个方法改名为testXXX
,也会被运行,下面是运行规则说明:
测试框架只会运行所有public
的test开头
的方法,只要你的方法名称前面有test四个字母就会被运行
当然你还可以在这些公共方法里调用私有方法
预启动脚本 ¶
可以看到测试项目目录
的tests\unit
下有一个叫_bootstrap.php
的文件,每次运行单元测试代码之前都会运行这个文件的,我们可以在这里做一些初始化工作,比如本来你在测试用例里编写$this->assertTrue(APP_NAME == 'test')
然后运行时就会告诉你APP_NAME
这个常量不存在,接着在_bootstrap.php
里补充代码define('APP_NAME', 'test')
然后测试用例就能正常调用这个常量了
但还要告诉你的就是在上一层目录tests
也有一个_bootstrap.php
,这个才是最先被运行的,然后再运行unit
目录里面的,简单地说就是所有测试共同的预启动文件,接着里面就是单元测试才会跑的预启动文件,又比如tests\acceptance\_bootstrap.php
这是验收测试运行时才会跑的预启动文件,但它也会运行上一层的公共预启动文件,这个后面学其它测试的时候再专门说吧
运行前后 ¶
每运行一个名字为test
开头的测试方法,都会运行一次_before
方法而测试方法跑完后就会运行_after
方法,如果有N个testXXX的方法,那么每个testXXX之前都会跑一次_before
和_after
,这里简单讲一下而已,后面会有详解,因为这里有坑