正文地址

 

分享提纲:

  1.概述

  2.安装

  3.编纂第叁个测试用例

  4.PHPUnit高级

  5.参考

 

 

1.概述

  1)【测试框架】

  它是一款轻量级的PHP测试框架,是3个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

json 1json 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发布于二〇一六年4月二十三日,于二〇一八年7月六日完毕帮忙。

    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 的注重性关系即可。下边是2个最小化的  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个测试用例

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

json 3json 4

<?php

class SayHello{

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

    }
}
?>

SayHello.php

 

3.2)新建测试用例SayHelloTest.php

json 5json 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初叶的办法均是测试方法,会活动运营;
    3、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笔记

 

相关文章

网站地图xml地图