通常在ThinkPHP中进行单元测试需要遵守以下的规范:
- 测试类保存在tests目录下
- 针对某个控制器的测试类命名规则为xxxTest.php,比如针对Index控制器进行测试的话,则测试的命名为:IndexTest.php
- 测试类通常继承自TestCase,命名空间通常为tests。
- 针对某个操作的测试通常命名为testxxx,比如针对Index控制器下的index操作,其测试方法命名为:testIndex,并且需要为公有方法(public)。
- 建议:当对同一个操场进行多种测试的时候,测试方法的命名可以在尾部递增数字,然后使用注释进行说明,而不用去想具体的测试范围所对应的名字。比如testIndex1,testIndex2.
以下是一个为被测试代码:
<?php
namespace appindexcontroller;
class Index
{
public function test(){
return "Hello world!";
}
}
则其测试类为:
<?php
namespace tests;
//针对Index控制器
class IndexTest extends TestCase
{
//针对Index控制器下的test方法
public function testTest()
{
$this->visit("/index/index/test")->see("Hello world!",TRUE);
}
}