首页 | 互联网 | IT动态 | Cisco | Windows | Linux | Java | .Net | Oracle | 华为 | 存储世界 | 服务器 | 网络设备 | IDC | 安全 | 求职招聘
IT培训 | 数字网校 | 技术专题 | 电子书下载 | 教学视频 | 网页设计 | 平面设计 | 解决方案 | 直播室 | 虚拟考场 | 搜索 | 博客 | 沙龙 | 论坛
中国IT实验室软件测试频道
IT教育热线
 
首页 资讯动态 测试技术 测试工具 行业软件测试 测试管理 测试下载 经验分享 软件质量 其他技术 RSS订阅 博客 论坛
您现在的位置: 中国IT实验室 >> 软件测试 >> 测试技术 >> 单元测试 >> 文章正文

PHP单元测试工具PHPUnit初体验

文章来源中国软件测试 作者佚名 更新时间2008-5-9 保存本文保存本文 推荐给好友推荐给好友 收藏本页收藏本页

  今天接到了个任务,需要对数字进行计算,因为涉及到整数,小数,和科学计数法等很多条件,所以人工测试非常麻烦,于是想到了PHP的单元测试工具PHPUnit,所以写个文档备查。

  看了PHPUnit的文档之后基本有了一些了解,
http://pear.php.net/manual/en/packages.php.phpunit.intro.php

工作流程如下:
1.设计你的class/API
2.创建测试程序集
3.实现class/API
4.运行测试
5.修正测试失败或错误,回到第4步。

我们来举个例子:
  下面是你要测试的class,其中formatn函数一个取任意数字的5位有效数字的函数。

CODE:
----------format_number.php-----------
class fo {

        function fo() {
        }

        function formatn($num) {
                $num = rtrim($num,"0");
                $pos = strpos($num,".");
                $num = str_replace(".","",$num);
                $count1 = strlen($num);
                $num = ltrim($num,"0");
                $count2 = strlen($num);
                $zeroc = $count1 - $count2;
                $num = substr($num,0,6);
                $num = round($num/10);
                //$num = str_pad($num, 5, "0");
                if ($pos !== false) {
                        $num = str_pad($num, (strlen($num)+$zeroc), "0", STR_PAD_LEFT);
                        $dotl = substr($num,0,$pos);
                        $dotr = substr($num,$pos);
                        $num = $dotl.".".$dotr;
                }
                return $num;
        }

}
  接着创建TestCase,继承自PHPUnit_TestCase

CODE:
----------testcase.php-----------
<?php

require_once 'format_number.php';
require_once 'PHPUnit.php';

class foTest extends PHPUnit_TestCase &#123;

        //这个成员变量是存放要测试的类引用
        var $abc;

        //构造函数
        function foTest&#40;$name&#41; &#123;
                $this->;PHPUnit_TestCase&#40;$name&#41;;
        &#125;

        //new一个要测试的类为成员变量abc赋值
        function setUp&#40;&#41; &#123;
                $this->;abc = new fo;
        &#125;

        //unset要测试的类
        function tearDown&#40;&#41; &#123;
                unset&#40;$this->;abc&#41;;
        &#125;

        //自定义的testcase
        function testFormatn1&#40;&#41; &#123;
                //调用要测试的类的方法,结果放到$result变量
                $result = $this->;abc->;formatn&#40;&quot;100.234&quot;&#41;;
                //期望结果
                $expected = &quot;100.23&quot;;
                //判断是否相等,这里使用assertTrue方法来判断布而值是否为true。
                $this->;assertTrue&#40;$result == $expected&#41;;
        &#125;

        function testFormatn2&#40;&#41; &#123;
                $result = $this->;abc->;formatn&#40;&quot;0.100234&quot;&#41;;
                $expected = &quot;0.10023&quot;;
                $this->;assertTrue&#40;$result == $expected&#41;;
        &#125;

        function testFormatn3&#40;&#41; &#123;
                $result = $this->;abc->;formatn&#40;&quot;0.100235&quot;&#41;;
                $expected = &quot;0.10024&quot;;
                $this->;assertTrue&#40;$result == $expected&#41;;
        &#125;

        function testFormatn4&#40;&#41; &#123;
                $result = $this->;abc->;formatn&#40;&quot;0.000100235&quot;&#41;;
                $expected = &quot;0.00010024&quot;;
                $this->;assertTrue&#40;$result == $expected&#41;;
        &#125;

        function testFormatn5&#40;&#41; &#123;
                $result = $this->;abc->;formatn&#40;&quot;0.000100232&quot;&#41;;
                $expected = &quot;0.00010023&quot;;
                $this->;assertTrue&#40;$result == $expected&#41;;
        &#125;

        function testFormatn6&#40;&#41; &#123;
                $result = $this->;abc->;formatn&#40;&quot;1343&quot;&#41;;
                $expected = &quot;1343&quot;;
                $this->;assertTrue&#40;$result == $expected&#41;;
        &#125;

        function testFormatn7&#40;&#41; &#123;
                $result = $this->;abc->;formatn&#40;&quot;1343.01&quot;&#41;;
                $expected = &quot;1343&quot;;
                $this->;assertTrue&#40;$result == $expected&#41;;
        &#125;

        function testFormatn8&#40;&#41; &#123;
                $result = $this->;abc->;formatn&#40;&quot;1343.05&quot;&#41;;
                $expected = &quot;1343.1&quot;;
                $this->;assertTrue&#40;$result == $expected&#41;;
        &#125;

        function testFormatn9&#40;&#41; &#123;
                $result = $this->;abc->;formatn&#40;&quot;0&quot;&#41;;
                $expected = &quot;0&quot;;
                $this->;assertTrue&#40;$result == $expected&#41;;
        &#125;

        function testFormatn10&#40;&#41; &#123;
                $result = $this->;abc->;formatn&#40;&quot;105.2342&quot;&#41;;
                $expected = &quot;105.23&quot;;
                $this->;assertTrue&#40;$result == $expected&#41;;
        &#125;

        function testFormatn11&#40;&#41; &#123;
                $result = $this->;abc->;formatn&#40;&quot;105.2375&quot;&#41;;
                $expected = &quot;105.24&quot;;
                $this->;assertTrue&#40;$result == $expected&#41;;
        &#125;

        function testFormatn12&#40;&#41; &#123;
                $result = $this->;abc->;formatn&#40;&quot;0.000523751&quot;&#41;;
                $expected = &quot;0.00052375&quot;;
                $this->;assertTrue&#40;$result == $expected&#41;;
        &#125;

        function testFormatn13&#40;&#41; &#123;
                $result = $this->;abc->;formatn&#40;&quot;0.000523755&quot;&#41;;
                $expected = &quot;0.00052376&quot;;
                $this->;assertTrue&#40;$result == $expected&#41;;
        &#125;

&#125;

  

[1] [2] 下一页  

【责编:Luzi】

中国IT教育

相关产品和培训
文章评论
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·企业网管如何部署你的网络监控系统?
 ·2008年软考官方指定教材及辅导书下载专题
 ·负载均衡技术方案攻略
 ·中国IT实验室2007年技术热点盘点
 ·利用路由实现VPN的配置方法
 ·JAVA开源技术介绍专题
 ·让你的局域网网速更上一层楼
 ·Linux Shell编程实用指南
 最近更新
 博客论点
 频道精选
 软件测试频道导航