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. centos 6.5 6.6 6.7安装gitlab教程(社区版)

    简单的说安装gitlab就两种办法主要介绍第一种:官网推荐的方法: 1.新建yum源 新建 /etc/yum.repos.d/gitlab-ce.repo,内容为 [gitlab-ce] name=g ...

  2. jstl foreach标签

    forEach标签 forEach标签用来循环. 属性: * var :定义循环变量 * begin :从哪开始 * end :到哪结束 * step :递增 * items :遍历的内容 * var ...

  3. eclipse中如何安装插件ADT及SDK工具

    1.如何在eclipse中安装ADT 首先下载ADT Plugin 下载地址: http://tools.android-studio.org/index.php/adt-bundle-plugin ...

  4. 解决weblogic.net.http.SOAPHttpsURLConnection incompatible with javax.net.ssl.HttpsURLConnection

    1. 按照网上的办法,可以修改代码解决问题,但是由于我们使用的是别人的jar包,不能修改代码,: URL url = new URL(null, "https://www.baidu.&qu ...

  5. oracle 12c中的隐含列

      Invisible Columns 使用select * from ,desc 等看不到该列, DROP TABLE tab1 PURGE; CREATE TABLE tab1 ( id NUMB ...

  6. Oracle查询实用命令

    1.设置每行的长度: SET LIN[ESIZE] 200; 2.设置分页数量: SET PAGES[IZE] 50; 3.查看表空间相关信息: select file_id, tablespace_ ...

  7. Thinkphp5简单初体验

    <?php namespace app\index\controller; use think\Controller; //引用think/Controller类 class Index ext ...

  8. 数据类型和Json格式

    1. 前几天,我才知道有一种简化的数据交换格式,叫做yaml. 我翻了一遍它的文档,看懂的地方不多,但是有一句话令我茅塞顿开. 它说,从结构上看,所有的数据(data)最终都可以分解成三种类型: 第一 ...

  9. three.js自定义形状

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xht ...

  10. docker 配置文件引发的问题

    好久没有配置 vmware / harbor 了,突然间来了兴趣,结果让我失望了,登陆反复的被refused; 这个是配置文件地址:https://github.com/vmware/harbor/b ...