PHP【抓好PHP基础】PHPUnit — PHP测试框架

本文地址

 

享用提纲:

  1.概述

  2.安装

  3.编写制定第3个测试用例

  4.PHPUnit高级

  5.参考

 

 

1.概述

  1)【测试框架】

  它是一款轻量级的PHP测试框架,是贰个xUnit的种类布局的单元测试框架。复杂的品类,通过单元测试能够高效排查bug,有效减少bug的爆发。不难的门类,使用php自带的var_dump()print_r()也能很便利的调节和测试bug。PHPUnit通过运营测试用例里的预感(例如判断再次回到结果不为空),检查代码是还是不是顺应预期。

  

2.安装

  安装形式有三种。一种是接纳phar包,一种是运用Composer。

  mac下的装置请参考
http://blog.csdn.net/u013166311/article/details/52622560

  (能够下载低版本的phpunit wget
https://phar.phpunit.de/phpunit-4.0.14.phar

PHP 1PHP 2

于是打开终端,先pear version 验证是否安装了pear。

如果没有安装$sudo PHP /usr/lib/php/install-pear-nozlib.phar -d /usr/local/lib/php -b /usr/local/bin

用$ pear version检测安装成功

$ sudo pear upgrade-all  更新。

最后用以下命令安装成功:

$ wget https://phar.phpunit.de/phpunit-4.0.14.phar

$ chmod +x phpunit.phar

$ sudo mv phpunit.phar /usr/local/bin/phpunit

mac下安装

 

  2.1)使用phar包
    最新版的喜笑颜开版phar包是5.7,下载地址
https://phar.phpunit.de/phpunit.phar

    phar5.7宣布于二〇一四年11月十五日,于二〇一八年十月二十16日终结帮忙。

    PHPUnit 5.7 支持 PHP 5.6, PHP 7.0, 和 PHP 7.1。

    注意:PHP的本子相比较低,能够下载低版本的 phpunit,例如 wget
https://phar.phpunit.de/phpunit-4.0.14.phar

    运市场价格势:

# 通用
php phpunit.phar --version

# linux
chmod +x phpunit.phar
sudo mv phpunit.phar /usr/local/bin/phpunit
phpunit --version

 

  能够查阅版本号。

  2.2)使用Composer
    如果用 Composer
来管理项指标重视性关系,只要在项目标composer.json 文件中回顾地加上对
phpunit/phpunit 的借助关系即可。下边是三个最小化的  composer.json
文件的例子,只定义了一个对 PHPUnit 5.7 的开发时依赖:

{
    "require-dev": {
        "phpunit/phpunit": "5.5.*"
    }
}

 

  要通过 Composer 达成系统级的设置,能够运维:

composer global require "phpunit/phpunit=5.5.*"

 

  请保管 path 变量中含有有 ~/.composer/vendor/bin/

 

3.编纂第一个测试用例

  3.1)新建文件夹Testcase,编写SayHello.php:

PHP 3PHP 4

<?php

class SayHello{

    public function printHello(){
        echo 'Hello';
        return 'Hello';

    }
}
?>

SayHello.php

 

3.2)新建测试用例SayHelloTest.php

PHP 5PHP 6

<?php

require_once 'SayHello.php';

class SayHelloTest extends PHPUnit_Framework_TestCase {

    public function setUp(){ }

    public function tearDown(){ }

    public function testConnectionIsValid(){
        $hi = new SayHello();
        $this->assertTrue($hi->printHello() == 'Hello');
    }

}

SayHelloTest.php

 

 

编写完成后,切换到phpunit.phar所在目录命令行执行:

$ php phpunit.phar Testcase/SayHelloTest.php

 

  输出结果:

PHPUnit 5.7.4 by Sebastian Bergmann and contributors.

.                                                                  1 / 1 (100%)Hello

Time: 130 ms, Memory: 10.00MB

OK (1 test, 1 assertion)

 

结果表明:

  测试通过,一个测试方法,二个断言,没有难倒。

  那里注意的是:
    ① 、全体以Test结尾的类均为测试用例;
    ② 、全数以test开端的主意均是测试方法,会活动运行;
    ③ 、setUp是各种测试用例起头运营的艺术,tearDown是各样测试用例最终运维的不二法门;
    4、assertTrue用来判断结果是还是不是为true。

  

 

4.PHPUnit高级

  4.1) 模拟指标MOCK

    – mock的深层次原理是怎样?

      类PHPUnit_Framework_MockObject_Generator 中的方法
getMock()

       
在phpunit检查和测试到mock对象,当要替换的对象由类实例化时,就被替换到了mock的指标,然后,使用mock的办法放回对象的值。

    –【百度百科–定义mock

      mock在各语言中的达成

 

    –
参考:PHPUnit学习03—利用Mock对象化解测试注重

 

  4.2) 一些常识

  • @test 标注将其标志为测试方法
  • @depends 标注来表明测试方法之间的信赖关系:
    被正视的函数的回来值会被看做正视着的输入参数 

5.参考

  5.0)【好】PHPUnit手册

  5.1)发端应用 PHPUnit –
PHP测试框架

  5.2)web3d/TPUnit: ThinkPHP
PHPUnit框架集成

  5.3)[PHP]PHPUnit安装配备及样例 |
CoinIdea的技术分享博客

  5.4)《xUnit Test Patterns》学习笔记连串 – CoderZh –
博客园

  

  5.5)【好】PHPUnit笔记

 

相关文章