首页 | 资讯动态 | linux基础 | 系统管理 | 网络管理 | 编程开发 | linux数据库 | linux相关 | linux认证 | 下载中心 | 专题
oklinux
 系统管理:中文环境 系统管理 桌面应用 内核技术 Linux基础:安装配置 常用命令 经验技巧 软件应用 Linux数据库:Mysql POSTGRE
 网络管理:网络安全 网络应用 Linux服务器 编程开发:PHP CC++ Python Perl SHELL 嵌入式开发 | PHP基础 PHP技巧 PHP应用 PHP文摘
 首页 linux资讯动态 Linux专题 | 其他Unix Linux解决方案 硬件相关 Linux认证 企业应用 Apache | 相关下载:软路由 参考手册 开发工具
 → 当前位置:首页>编程开发>php>php技巧>正文

利用单元测试对PHP 代码进行检查

OKLinux www.oklinux.cn 2006-11-06 来源:ChinaITLab 收集整理 会员收藏 游客收藏

    测试驱动的开发和单元测试是确保代码在经过修改和重大调整之后依然能如我们期望的一样工作的最新方法。在本文中,您将学习到如何在模块、数据库和用户界面(UI)层对自己的 PHP 代码进行单元测试。

现在是凌晨 3 点。我们怎样才能知道自己的代码依然在工作呢?

    Web 应用程序是 24x7 不间断运行的,因此我的程序是否还在运行这个问题会在晚上一直困扰我。单元测试已经帮我对自己的代码建立了足够的信心 —— 这样我就可以安稳地睡个好觉了。

    单元测试 是一个为代码编写测试用例并自动运行这些测试的框架。测试驱动的开发 是一种单元测试方法,其思想是应该首先编写测试程序,并验证这些测试可以发现错误,然后才开始编写需要通过这些测试的代码。当所有测试都通过时,我们开发的特性也就完成了。这些单元测试的价值是我们可以随时运行它们 —— 在签入代码之前,重大修改之后,或者部署到正在运行的系统之后都可以。

PHP 单元测试

    对于 PHP 来说,单元测试框架是 PHPUnit2。可以使用 PEAR 命令行作为一个 PEAR 模块来安装这个系统:% pear install PHPUnit2

    在安装这个框架之后,可以通过创建派生于 PHPUnit2_Framework_TestCase 的测试类来编写单元测试。

模块单元测试

    我发现开始单元测试最好的地方是在应用程序的业务逻辑模块中。我使用了一个简单的例子:这是一个对两个数字进行求和的函数。为了开始测试,我们首先编写测试用例,如下所示。


清单 1. TestAdd.php
<?php
require_once 'Add.php';
require_once 'PHPUnit2/Framework/TestCase.php';

class TestAdd extends PHPUnit2_Framework_TestCase
{
  function test1() { $this->assertTrue( add( 1, 2 ) == 3 ); }
  function test2() { $this->assertTrue( add( 1, 1 ) == 2 ); }
}
?>

    这个 TestAdd 类有两个方法,都使用了 test 前缀。每个方法都定义了一个测试,这个测试可以与清单 1 一样简单,也可以十分复杂。在本例中,我们在第一个测试中只是简单地断定 1 加 2 等于 3,在第二个测试中是 1 加 1 等于 2。

    PHPUnit2 系统定义了 assertTrue() 方法,它用来测试参数中包含的条件值是否为真。然后,我们又编写了 Add.php 模块,最初让它产生错误的结果。


清单 2. Add.php
<?php
function add( $a, $b ) { return 0; }
?>

现在运行单元测试时,这两个测试都会失败。


清单 3. 测试失败
% phpunit TestAdd.php
PHPUnit 2.2.1 by Sebastian Bergmann.

FF

Time: 0.0031270980834961
There were 2 failures:
1) test1(TestAdd)

2) test2(TestAdd)


FAILURES!!!
Tests run: 2, Failures: 2, Errors: 0, Incomplete Tests: 0.

现在我知道这两个测试都可以正常工作了。因此,可以修改 add() 函数来真正地做实际的事情了。

<?php
function add( $a, $b ) { return $a+$b; }
?>

现在这两个测试都可以通过了。

 

[1] [2] [3] [4] [5] 下一页  

共9页: 上一页 1 [2] [3] [4] [5] [6] [7] [8] [9] 下一页
上一篇:五个常见 PHP 数据库问题   下一篇:PHP 应用程序配置模式
收藏于收藏夹】 【评论】 【推荐】 【投稿】 【打印】 【关闭

相关文章
·五个常见 PHP 数据库问题
·PHP 应用程序配置模式
·用 PHP V4 开发的代码迁移到 PHP V5
·linux编程:PHP执行root命令
·Linux环境下如何使用PHP处理图像
·PHP中register_globals引发的问题
·怎样用PHP来给网页做导航栏
·vim下高亮显示php代码
·使用PHP 快速生成Flash 动画
·正确理解PHP程序编译时的错误信息
发表评论
密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。)
站内搜索
阅读排行榜
·PHP 应用程序配置模式
·用 PHP 读取文件的正确方
·PHP面向对象编程快速入门
·用 PHP V4 开发的代码迁移
·五个常见 PHP 数据库问题
·使用PHP 快速生成Flash 动
·如何用PHP调用自己编写的C
·用Pear加速PHP程序开发
·用PHP在Linux上读取输入并
·正确理解PHP程序编译时的
最新文章
·用Pear加速PHP程序开发
·Debian下php环境的简单搭
·PHP+Oracle(OCI) 初步
·PHP用流方式制作缩略图
·PHP程序与服务器端通讯方
·PHP程序员的优化调试技术
·用PHP在Linux上读取输入并
·PHP应用技巧:如何将代码
·PHP应用技巧:通过SMTP发
·如何利用PHP操纵Oracle LO
·PHP程序与服务器端通讯的
·PHPUnit袖珍指南之自动测
·还是说php实现singleton模
·PHP编程技巧:看实例学正
·用 PHP 读取文件的正确方

设为首页 - 加入收藏 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright © 2007 All rights reserved OKLinux.Cn 版权所有
合作联系 QQ:18743986 Email:arlan8005#163.com