- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PHP单元测试利器:PHPUNIT初探.doc
PHP单元测试利器:PHPUNIT初探
你是否在程序开发的过程中遇到以下的情况:当你花了很长的时间开发一个应用后,你认为应该是大功告成了,可惜在调试的时候,老是不断的发现bug,而且最可怕的是,这些bug是重复出现的,你可能发现这些bug之间会有关联,但却老是找不到问题的所在。
当你遇到以上这些令你沮丧的情况时,你一定会想能有什么更好的办法去解决呢?办法当然是有的!这就是使用单元测试。单元测试不但可以在一定程度上解决上述头疼的问题,而且能让代码变的容易维护,还可以能让你更多地对代码进行重构。
一旦你编写好单元测试用例,当你需要修改你的代码时,你要做的事情就是重新运行你的单元测试用例并观察这些单元测试用例能否通过,如果通过了的话,证明代码是没问题的。
人们往往会说:既然单元测试这么好,为什么那么多人还是不大愿意去写单元测试呢?有以下几种理解上的误曲:
1、认为编写单元测试太浪费时间。虽然目前很多IDE工具都为编写单元测试建立好了框架,但还是要开发者编写一些单元测试的代码的。就象很多开发中的最佳实践一样,用正确的方法去做正确的事情会为开发节省大量的时间。每当新增加新功能时,你可能通过访问你的网页到处去点击手动测试,而运行建立好的单元测试用例其速度其实比通过手工去测试的速度更快。
2、认为既然代码能运行了,不需要再编写单元测试。但假设团队中有新的成员,如果没有良好的单元测试用例,新成员很有可能随意地去编码而不考虑各种后果。如果有编写良好的单元测试,在程序运行时进行各种测试,则能最大程度避免bug的产生。
3、认为编写单元测试代码枯燥无味。程序员的天性是解决问题,而很多程序员认为在紧张的编码工作时,还要编写单元测试代码,会很枯燥。但要知道的是,如果能通过编写单元测试在很早的阶段就能尽可能发现代码中多的错误的话,那么既节省时间减少了出错,何乐而不为?
开始动手安装PHPunit
本文中将通过介绍php中的单元测试利器phpunit(http://phpunit.de/),并通过实际例子来讲解如何在实际工作中运用phpunit。首先安装phpunit的方法可以通过php下的pear去安装:
pear channel-discover pear.phpunit.de pear channel-discover components.ez.no pear channel-discover pear install phpunit/PHPUnit
如果你想通过手动方式去安装,可以参考phpunit的手册去安装(http://www.phpunit.de/manual/3.0/en/installation.html)。
编写第一个单元测试用例
下面我们开始编写第一个单元测试用例。在编写测试用例时,要遵守如下的phpunit的规则:
1 一般地,在测试用例中,可以扩展PHPUnit_Framework_TestCase类,这样就可以使用象setUp(),tearDown()等方法了。
2 测试用例的名字最好是使用约定俗成的格式,即在被测试类的后面加上”Test”,比如要测试的类为RemoteConnect,则测试用例的命名为RemoteConnectTest。
3 在一个测试用例中的所有的测试方法,在命名时都应该以test+测试方法名去命名,如testDoesLikeWaffles(),要注意的是该方法必须是声明为public类型的。当然可以在你的测试用例中包含private的方法,但它们不能被phpunit所调用。
4 测试方法中是不能接收参数的。
下面首先举个简单的例子,代码如下:
?php
class RemoteConnect
{
public function connectToServer($serverName=null)
{
if($serverName==null){
throw new Exception(“Thats not a server name!”);
}
$fp = fsockopen($serverName,80);
return ($fp) ? true : false;
}
public function returnSampleObject()
{
return $this;
}
}
?
上面的代码其实是实现连接到一个指定的服务器的功能,那么我们可以编写测试代码如下:
?php
require_once(RemoteConnect.php);
class RemoteConnectTest extends PHPUnit
您可能关注的文档
最近下载
- 我国散光矫正型人工晶状体临床应用专家共识.docx
- 科研伦理与学术规范.docx VIP
- 【教学评一体化】第三单元 赏山川日月,悟忧乐情怀 整体公开课一等奖创新教学设计-【大单元教学】统编版语文九年级上册名师备课系列.docx VIP
- 缅怀先烈精神-传承红色基因课件.pptx VIP
- 1.1 同底数幂的乘法 双减分层作业设计样例 2021—2022学年北师大版数学七年级下册 .docx VIP
- 朱良春杂病廉验特色发挥.docx
- 绘本《我妈妈》教学设计.docx
- 人教版(2024)英语七年级上册全册教案.DOCX VIP
- 在线网课知慧《音乐艺术概论》课后章节测试答案.docx
- 2024年中煤集团西南分公司招聘笔试参考题库附带答案详解.pdf
文档评论(0)