PHPUnit是PHP语言的单元测试框架、工具,xunit单元测试工具系列成员之一,可以单独运行在Linux或windows系统下面,也可以集成到zend studio等IDE工具中。

工具下载:https://phpunit.de/index.html

在线手册:https://phpunit.de/manual/4.6/zh_cn/index.html

工具安装参见在线手册文档


在命令行下使用PHPUnit进行单元测试

1、配置好phpunit命令的path等环境变量,确保能在任意目录下执行phpunit命令。

2、直接使用phpunit命令来运行测类文件:

  

..    2个测试方法都运行成功

OK  包括2个测试方法,4个断言

  • .    当测试成功时输出。
  • F   当测试方法运行过程中一个断言失败时输出。
  • E   当测试方法运行过程中产生一个错误时输出。
  • R   当测试被标记为有风险时输出。
  • S   当测试被跳过时输出。
  • I   当测试被标记为不完整或未实现时输出。

在zend studio中使用PHPUnit框架

1.为需要进行单元测试的项目添加phpunit的Library。

右键点击项目->properties->PHP Include Path->Libraries选项卡

    

点击Add Library...,选择PHPUnit x.x->Next->Finish

点击OK,phpunit的Library就添加成功了

2、编写测试类继承PHPUnit框架的PHPUnit_Framework_TestCase类)

待测试的Demo类:

  

右键点击项目->New->PHPUnit Test Case,新建测试用例类(也可以直接新建普通的PHP File):

  

可以选择要测的类或函数:

完成后,或自动生成PHPUnit框架代码:

<?php
require_once 'Demo.php';   //包含被测试的类文件
require_once 'PHPUnit/Framework/TestCase.php';   //包含框架类库,当在命令行下使用phpunit命令运行单元测试时,无需此条语句

/**
 * Demo test case.
 */
class DemoTest extends PHPUnit_Framework_TestCase   //测试类名以被测试类名+Test命名,继承测试框架测试用例类
{

    /**
     *
     * @var Demo
     */
    private $Demo;

    /**
     * Prepares the environment before running a test.
     */
    protected function setUp()         //测试前配置测试环境
    {
        parent::setUp();

        // TODO Auto-generated DemoTest::setUp()

        $this->Demo = new Demo(/* parameters */);
    }

    /**
     * Cleans up the environment after running a test.
     */
    protected function tearDown()   //测试后清理测试环境
    {
        // TODO Auto-generated DemoTest::tearDown()
        $this->Demo = null;

        parent::tearDown();
    }

    /**
     * Constructs the test case.
     */
    public function __construct()   //构造函数
    {
        // TODO Auto-generated constructor
    }

    /**
     * Tests Demo->sum()
     */
    public function testSum()   //测试方法以test+被测试的方法命名
    {
        // TODO Auto-generated DemoTest->testSum()
        //$this->markTestIncomplete("sum test not implemented");

        $this->assertEquals(4,$this->Demo->sum(2,2));    //断言
        $this->assertEquals(0,$this->Demo->sum(0,0));
    }

    /**
     * Tests Demo->subtract()
     */
    public function testSubtract()
    {
        // TODO Auto-generated DemoTest->testSubtract()
        //$this->markTestIncomplete("subtract test not implemented");

        $this->assertNotEquals(3,$this->Demo->subtract(1,1));
        $this->assertEquals(0,$this->Demo->subtract(0,0));
    }
}

Xunit框架执行顺序:

3、运行单元测试

右键点击测试文件->Run as->PHPUnit Test就可以进行单元测试了:

  

单元测试运行成功状态(绿色):

PHPUnit入门的更多相关文章

  1. phpunit 入门

    话说,使用phpunit还是处于好奇之心,为什么以前一直没使用呢?主要是嫌麻烦,小项目,前后端都是自己写,几个人就完成的工作,没必要弄的那么麻烦.好了,废话不多说,让我们一起来感受下phpunit吧! ...

  2. 用phpUnit入门TDD

    用phpunit实战TDD系列 从一个银行账户开始 假设你已经 安装了phpunit. 我们从一个简单的银行账户的例子开始了解TDD(Test-Driven-Development)的思想. 在工程目 ...

  3. PHP Unit资料收集

    ThinkPHP Unit https://github.com/gaoermai/ThinkPHPUnit PHPUnit入门http://blog.csdn.net/fly_heart_yuan/ ...

  4. phpunit测试学习 1:一点简单的扼要有用的东西的总结 一点入门认识

    16:45 2015/12/8phpunit测试学习 1:一点简单的扼要有用的东西的总结  一点入门认识 具体的入门安装和入门实践请参照文中的推荐博客或网上其他博客推荐博客,我感觉这几篇博客写得很不错 ...

  5. php单元测试入门教程phpunit详解

    本文档提供了一些phpunit官方教程没有提到的信息,帮助初学者快速了解php单元测试,在phpunit官网提供了详细的中文教程,可选多种格式下载 phpunit官网地址:https://phpuni ...

  6. 【技术博客】 Laravel 5.1单元测试(PHPUnit)入门

    目录 Laravel 5.1单元测试(PHPUnit)入门 简介 安装与配置 1. 安装 2. 配置 编写测试样例 1. 新建测试样例 2. 编写函数的测试 3. 编写Web功能测试 运行测试与查看结 ...

  7. phpunit学习 3:

    16:17 2015/12/11phpunit学习 3:单元测试的大概步骤是:编写待测试类,编写测试用例类,编写测试类,测试.1.如果你有多个类,多个测试类的test类,那么可以编写一个AllTest ...

  8. zend studio使用入门

    使用zend studio8建立项目 使用PHP开发工具zend studio8进行PHP网站开发,就需要建立(导入)相应的项目,方法如下:右键左侧Workspace,选择New | PHP Proj ...

  9. PHPUnit简介及使用

    一.PHPUnit是什么? 1.它是一款轻量级的PHP测试框架,地址:http://www.phpunit.cn 2.手册:http://www.phpunit.cn/manual/5.7/zh_cn ...

随机推荐

  1. Xcode7建立自己的自定义工程和类模板

    首先进入系统模板的目录 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library ...

  2. secureCRT会话导入到xshell中的方法

    官方给出了一个工具,sessionimporter.exe 不过软件有点老了,导入的会话路径和xshell默认的会话路径不一致,导致导入后,xshell没有导入的会话信息 sessionimporte ...

  3. [转]关于Android系统的”点九”

    李华明Himi原创,转载务必在明显处注明:转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/android-game/321.html 前几天群成员讨论过关 ...

  4. Effective C++ -----条款54:让自己熟悉包括TR1在内的标准程序库

    C++ 标准程序库的主要机能由STL.iostream.locales 组成.并包含C99 标准程序库. TR1 添加了只能指针(例如 tr1::shared_ptr).一般化函数指针(tr1::fu ...

  5. MAC 远程桌面链接 证书或链接无效

    RDC --> 首选项  -->  安全性 --> 勾选即使验证失败也要链接.   问题解决.

  6. SVN上传文件提示磁盘空间不足的问题

    SVN上传文件大于100M,提示:Commit failed (details follow):While preparing 'E:\AFCData\tjsc20db_table.sql' for ...

  7. MySql 连接字符串

    一.MySQL Connector/ODBC 2.50 (MyODBC 2.50)连接方式 1.本地数据库连接Driver={MySQL};Server=localhost;Option=16834; ...

  8. October 21st 2016 Week 43rd Friday

    Life is too short for long-term grudges. 人生苦短,无暇怨恨. Don't limit yourself. You can go as far as your ...

  9. iOS 应用数据存储方式(XML属性列表-plist)

    iOS 应用数据存储方式(XML属性列表-plist) 一.ios应用常用的数据存储方式 1.plist(XML属性列表归档) 2.偏好设置 3.NSKeydeArchiver归档(存储自定义对象) ...

  10. 第二章 编写与设置Servlet

    2.1 第一个Servlet package cc.openhome; import javax.servlet.ServletException; import javax.servlet.http ...