安装PHPUnit

系统环境:LInux-elementary os

pear channel-discover pear.phpunit.de

pear remote-list -c phpunit

pear install phpunit/PHPUnit

在编写测试用例时,要遵守如下的phpunit的规则:

  1 一般地,在测试用例中,可以扩展PHPUnit_Framework_TestCase类,这样就可以使用象setUp(),tearDown()等方法了。

  2 测试用例的名字最好是使用约定俗成的格式,即在被测试类的后面加上”Test”,比如要测试的类为RemoteConnect,则测试用例的命名为RemoteConnectTest。

  3 在一个测试用例中的所有的测试方法,在命名时都应该以test+测试方法名去命名,如testDoesLikeWaffles(),要注意的是该方法必须是声明为public类型的。当然可以在你的测试用例中包含private的方法,但它们不能被phpunit所调用。

  4 测试方法中是不能接收参数的。

       编写第一个单元测试用例,创建文件HelloTest.php,内容如下:

       

<?php
class HelloTest extends PHPUnit_Framework_TestCase{
    //用户初始化环境,类似构造函数
    public function setUp(){}
    //清理环境,类似析构函数
    public function tearDown(){}
    /**
     * 如果存在@test标签,即使方法名不是以test开头,也可以被PHPUnit识别
     * 判断值是否相等
     * @test
     */
    public function testEqual(){
        $a = 2014;
        $this->assertEquals($a, 2014);
        }
    }

   在终端下输入:phpunit HelloTest

           输出如下:

             .

            Time: 272 ms, Memory: 2.25Mb

            OK (1 test, 1 assertion)

            表示测试通过

            如果把$a的值改为2013,将不会通过测试,输出如下:

            F  //表示错误

            Time: 239 ms, Memory: 2.25Mb

            There was 1 failure:

            1) HelloTest::testEqual  

            Failed asserting that 2014 matches expected 2013.

            /tmp/HelloTest.php:15

            FAILURES!

            Tests: 1, Assertions: 1, Failures: 1.

常用断言如下:

AssertTrue/AssertFalse    断言是否为真值还是假

AssertEquals    判断输出是否和预期的相等

AssertGreaterThan    断言结果是否大于某个值,同样的也有LessThan(小于),GreaterThanOrEqual(大于等于),

LessThanOrEqual(小于等于).

AssertContains    判断输入是否包含指定的值

AssertType    判断是否属于指定类型

AssertNull    判断是否为空值

AssertFileExists    判断文件是否存在

AssertRegExp    根据正则表达式判断






你可能感兴趣的:(phpunit,断言,PHP单元测试)