PHPUNIT单元测试

PHPUNIT###

目的:
1,phpunit.xml的设置.基本的测试部署
2,dataprovider的几种提供方式
3,以测试驱动开发(TDD)以及敏捷开发模式的目的,编写mock对象。

phpunit.xml

主要用来设置入口文件和测试套件(testsuite ),其他的设置不谈。

dataprovider的几种提供方式

函数提供

    public function dataProvider()
    {
        return array(
            array(
                array(20320,22909)
            ),
            array(
                array(20320,22909)
            )
        );
    }

这里必须是一个二维数组. array(array(a,b),array(a,b)) 这里的a,b相当于 func(a,b),php函数方法也可以用 func_get_args来传递 如 array(array(20320,22909)) func($a=array(20320,22909))

文件提供:

    /**
     * @dataProvider dataProvider
     */
    public function testGetByte(){
        $expect_result = array_pop($argc);
        $return  = $this->bytes->getBytes("你好");
        $this->assertEquals($return,$expect_result,"是否支持中文字符转码");
    }

附录 phpexcel phpunit.xml
安装方法 wget https://phar.phpunit.de/phpunit.phar
参考手册 https://phpunit.de/manual/current/en/phpunit-book.pdf

<?xml version="1.0" encoding="UTF-8"?> 
<phpunit bootstrap="./bootstrap.php"
    backupGlobals="true"
    colors="true" 
    convertErrorsToExceptions="true" 
    convertNoticesToExceptions="true" 
    convertWarningsToExceptions="true" 
    processIsolation="false" 
    syntaxCheck="true" 
    verbose="true" 
    strict="true"
    stopOnError="false"
    stopOnFailure="false"
    stopOnIncomplete="false"
    stopOnSkipped="false">
    <php>
        <ini name="memory_limit" value="2048M"/>
    </php>
    <testsuite name="PHPExcel Unit Test Suite">
        <directory suffix="Test.php">./Classes</directory>
    </testsuite>
    <filter>
        <whitelist>
            <directory suffix=".php">../Classes</directory>
            <exclude>
                <directory>../Classes/PHPExcel/Shared/PCLZip</directory>
                <directory>../Classes/PHPExcel/Shared/JAMA</directory>
                <directory>../Classes/PHPExcel/Writer/PDF</directory>
            </exclude>
        </whitelist>
    </filter>
</phpunit> 
原文地址:https://www.cnblogs.com/canbefree/p/5080322.html