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. cookie 巩固

    设定cookie 过期时间: Cookie coke = new Cookie("name", "pattern"); coke.setMaxAge(60);/ ...

  2. Gym - 101102B

    题目链接 用火柴棍拼出最大的数,思维题,最后发现暴力1e7刚刚不会超时. #include <bits/stdc++.h> using namespace std; ]={,,,,,,,, ...

  3. hive数据操作

    mdl是数据操作类的语言,包括向数据表加载文件,写查询结果等操作 hive有四种导入数据的方式 >从本地加载数据 LOAD DATA LOCAL INPATH './examples/files ...

  4. linux服务器做网关

    首先创建两张路由表,只需要添加到相应的文件中即可,Linux一共支持255个路由表,rt_tables文件中默认已经存在了三张路由表,分别是:   255    local   254    main ...

  5. WPF中如何将ListViewItem双击事件绑定到Command

    今天的博客将介绍如何实现ListViewItem双击事件绑定到ViewModel中的Command.实现方法借助了Style中的EventSetter,请看下面的详细代码: <ListView ...

  6. Javascript函数重载,存在呢—还是存在呢?

    1.What's is 函数重载? );//Here is int 10 print("ten");//Here is string ten } 可以发现在C++中会根据参数的类型 ...

  7. Hadoop学习笔记(2) 关于MapReduce

    1. 查找历年最高的温度. MapReduce任务过程被分为两个处理阶段:map阶段和reduce阶段.每个阶段都以键/值对作为输入和输出,并由程序员选择它们的类型.程序员还需具体定义两个函数:map ...

  8. 全文检索原理以及es

    最近要做个文章搜索,对全文检索原理以及es原理进行了一些调研, 1.  es索引文件为多个文本文件描述,索引文件中的内容构成可见 http://elasticsearch.cn/article/86 ...

  9. 2012 Multi-University #7

    最短路+拆点 A As long as Binbin loves Sangsang 题意:从1走到n,每次都是LOVE,问到n时路径是连续多个"LOVE"的最短距离.秀恩爱不想吐槽. 分析:在普通的最 ...

  10. Gollum 安装笔记

    环境Ubuntu server 14.04 sudo apt-get install ruby1.9.1 ruby1.9.1-dev make zlib1g-dev libicu-dev build- ...