快速业务通道

PHP单元测试利器:PHPUNIT初探

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-23

\    $fp = fsockopen($serverName,80);
\    return ($fp) ? true : false;
\  }
\  public function returnSampleObject()
\  {
\    return $this;
\  }
\}
\?>

   上面的代码其实是实现连接到一个指定的服务器的功能,那么我们可以编写测试代码如下:

\<?php
\require_once(''RemoteConnect.php'');
\class RemoteConnectTest extends PHPUnit_Framework_TestCase
\{
\  public function setUp(){ }
\  public function tearDown(){ }
\  public function testConnectionIsValid()
\  {
\    // test to ensure that the object from an fsockopen is valid
\    $connObj = new RemoteConnect();
\    $serverName = ''www.google.com'';
\    $this->assertTrue($connObj->connectToServer($serverName) !== false);
\  }
\}
\?>

   在上面的代码中,由于继承了PHPUnit_Framework_TestCase类,因此在setUp和tearDown方法中,不需要编写任何代码。SetUp方法是在每个测试用例运行前进行一些初始化的工作,而tearDown则在每个测试用例运行后进行一些比如资源的释放等工作。在测试方法中,通过使用phpunit的断言assertTrue去判断所返回的布尔值是否为真,这里是通过调用RemoteConnect.php中的connectToServe方法去判断能否连接上服务器。

接下来我们运行这个单元测试,在命令行下输入代码:

  phpunit /path/to/tests/RemoteConnectTest.php即可,可以看到测试顺利通过的话,会输出以下结果:

\PHPUnit 3.4 by Sebastian Bergmann
\.
\Time: 1 second
\Tests: 1, Assertions: 1, Failures 0

   可以看到,上面是通过了测试。默认情况下,phpunit是会运行测试用例中的所有测试方法的。下面再介绍下phpunit中相关的几个断言:

\AssertTrue/AssertFalse    断言是否为真值还是假
\AssertEquals    判断输出是否和预期的相等
\AssertGreaterThan    断言结果是否大于某个值,同样的也有LessThan(小于),GreaterThanOrEqual(大于等于),
\LessThanOrEqual(小于等于).
\AssertContains    判断输入是否包含指定的值
\AssertType    判断是否属于指定类型
\AssertNull    判断是否为空值
\AssertFileExists    判断文件是否存在
\AssertRegExp    根据正则表达式判断

   举个例子来说明下比如AssertType的使用,依然以上面的例子来说,可以用AssertType去判断returnSampleObject返回的对象实例是否为remoteConnect,代码如下:

\<?php
\function testIsRightObject() {
\  $connObj = new RemoteConnect();
\  $returnedObject = $connObj->returnSampleObject();
\  $this->assertType(''remoteConnect'', $returnedObject);
\}
\?>

   目前PHP框架对单元测试的支持

  目前很多优秀的php框架(如Zend Framework,Symfony等),都提供了对单元测试很好的支持。以Zend Framework为例,说明下其中是如何运行单元测试的。

\<?php
\class CommentControllerTest e

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号