php单测

更多内容可以查看这个教程,我这里就是简单的说一下。

一、phpunit

网上这个教程里面提到要安装phpunit,不过一般LNMP里面都会自带phpunit,一般和phpphpize等在同一个文件夹下面。

二、编写单元测试

网上这个教程里的代码来举例子,如何编写一个单元测试

<?php
use PHPUnit\Framework\TestCase;

class StackTest extends TestCase
{
    public function testPushAndPop()
    {
        $stack = [];
        $this->assertEquals(0, count($stack));

        array_push($stack, 'foo');
        $this->assertEquals('foo', $stack[count($stack)-1]);
        $this->assertEquals(1, count($stack));

        $this->assertEquals('foo', array_pop($stack));
        $this->assertEquals(0, count($stack));
    }
}
?>

注意:

  1. 要继承TestCase
  2. 函数命名要用test为前缀
  3. 不同框架下面的测试方法可能不一样

关于测试的依赖关系,可以用@depends来标注

实际应用中,我还没用到@depends,因为有一些涉及数据库的操作,不太方便回滚。一般我都直接构造$_GET或者$_POSTcontroller来测试。