All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
《Effective,C#》:用委托实现回调_[Asp.Net教程]
为什么PHP令人不爽(对于大型系统)_php资料_编程技术
两台SQL,Server数据同步解决方案_[SQL,Server教程]
如何在web.config中建立公用的的数据库连接_[Asp.Net教程]
SQLServer2005-在执行批处理时出现错误。错误消息为-,目录名无效_mssql学习_编程技术
ASP.NET2.0中对GridView删除操作时“未能找到带参数的非泛型方法”的解决方案_.net资料_编程技术
轻松实现无刷新三级联动菜单[VS2005与AjaxPro]_[Asp.Net教程]
在ASP.NET,Atlas中创建自定义Behavior_[Asp.Net教程]
PHP代码:得到客户端的IP_php资料_编程技术
Asp.net和C#开发中的一些注意事项及小技巧_.net资料_编程技术
Reading number is top 10 pictures
做运动的校花1
50个至今影响世界的德国发明
Fierce! China's special forces training the devil2
The little woman's bright wire3
The mother was a stay-at-home children too tired took three baby suicide
中国的阶级现状
The money of more than 100 countries and regions16
Chinese paper-cut grilles art appreciation2
美女当网吧管理员的悲剧
2012 national geographic daily picture6
Download software ranking
Dance with duck(male prostitution)
传奇私服架设教程-chm
Unix video tutorial5
DreamWeaver8
传奇私服架设教程
Tram sex maniac 2 (H) rar bag6
打鸟视频
VeryCD电驴(EasyMule) V1.1.9 Build09081
jdk1.5
Boxer vs Yellow2
aaa published in(发表于) 2013/12/21 22:24:44 Edit(编辑)
PHPUnit袖珍指南之自动测试_php资料_编程技术

PHPUnit袖珍指南之自动测试_php资料_编程技术

PHPUnit袖珍指南之自动测试_php资料_编程技术-你的首页-uuhomepage.com
  最好的程序员也会犯错误。好程序员和差程序员的区别在于:好程序员能通过测试尽可能的发现错误。你越快测试错误,你就越快发现它们,发现和修正的成本就越低。这解释了为什么只在软件发布前才测试的做法为什么问题那么多。大多数错误根本就没有发现过,修正发现的错误是那么的高,以至于你不得不根据优先级来决定只修正那些错误,因为你根本就承受不起全部修正的费用。

  相比你正在使用的方法,采用PHPUnit进行测试并不是一个全然不同的东西。它们只是方法不同。两者之间的不同在于,检查程序行为是否符合正确是通过一批可以自动测试的代码片断来进行的。这些代码片断叫做单元测试。 在这一部分,我们先基于打印的测试代码进行自动测试。假设我们要测试PHP的内建数组Array。需要测试之一是函数sizeof(),对任何新创建的数组,sizeof()函数应该返回 0。当我们加入一个新数组成员,sizeof()应该返回1。例1显示了我们想测试什么。

  例1. 测试数组和sizeof()


<?php
 $fixture = Array( );
 // $fixture应该为空。

 $fixture[] = "element";
 // $fixture应该包含一个数组成员。
?>
  最简单的测试方法是在加入数组成员前后打印sizeof()的运算结果,如果返回0和1,说明Array和sizeof()运行正常。

  例2. 采用打印语句测试Array和sizeof()


<?php
 $fixture = Array( );
 print sizeof($fixture) . "\n";

 $fixture[] = "element";
 print sizeof($fixture) . "\n";
?>
0
1
  现在,我们让测试程序从需要手工解释变为自动运行。在例3中,我们比较了期望值和实际值,如果相等就打印ok。如果我们发现有的结果不是ok,我们就知道有问题了。

  例3. 比较Array和sizeof()的期望值和实际值


<?php
 $fixture = Array( );
 print sizeof($fixture) == 0 ? "ok\n" : "not ok\n";

 $fixture[] = "element";
 print sizeof($fixture) == 1 ? "ok\n" : "not ok\n";
?>
ok
ok
  我们现在引入一个新的要素,如果期望值和实际值不同,我们就抛出一个异常。这样我们的输出就更简单了。如果测试成功,什么也不做,如果有一个未处理异常,我们知道有问题了。

  例4.使用断言函数来测试Array和sizeof()


<?php
 $fixture = Array( );
 assertTrue(sizeof($fixture) = = 0);

 $fixture[] = "element";
 assertTrue(sizeof($fixture) = = 1);

 function assertTrue($condition) {
  if (!$condition) {
   throw new Exception("Assertion failed.");
  }
 }
?>
  现在测试完全自动化了。和我们第一个版本不同,这个版本使得测试完全自动化了。

  使用自动测试的目的是尽可能少的犯错误。尽管你的代码还不是完美的,用优良的自动测试,你会发现错误会明显减少。自动测试给了你对代码公正的信心。有这个信心,你可以在设计上有大胆的飞越,和你的团队伙伴关系更好,改善你和客户之间的关系,每天安心入睡,因为你可以证明由于你的努力,系统变得更好了。




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.