• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

用phpunit调试PHP程序

发布: 2009-5-20 10:44 | 作者: 不详 | 来源: 测试时代采编 | 查看: 208次 | 进入软件测试论坛讨论

领测软件测试网

function testDeposit(){
$this->_ac2->deposit(10);
$this->assertEquals(30,$this->_ac2->getBalance()); //20 +10 = 30
}
  
// Tranfers 10 units from _ac3 to _ac4
// _ac3's initial balance is 30
// _ac4's initial balance is 50
 
function testTransferFrom(){
$this->_ac4->transferFrom(&$this->_ac3,10);
$this->assertEquals(20,$this->_ac3->getBalance(),"Source account balance incorrect"); // 30 - 10 = 20
$this->assertEquals(60,$this->_ac4->getBalance(),"Target account balance incorrect"); // 50 + 10 = 60
}
 
?>
 
        这段代码中,assert(如同C里的断言)方法是测试的关键部分。如果在assert中的条件表达式为真,那么测试通过。否则返回错误。由于assert 方法大都用于判断两个变量的值是否相等。因此,testclass类引入了assertEquals方法专门实现这个功能。AssertEquals方法中有3个参数,依次分别为:期望值,测试值,两值不相等时返回的消息提示串。
运行测试过程
        好了,现在可以运行一下我们编好的测试程序了。我们还必须建立一个runtest.php测试程序来运行所有的测试过程。
 
runtest.php源代码如下:
 
<?php
$tSuite = new TestSuite(); //creation of the test suite object 创建测试套件对象
$tSuite->addtest(new AccountTester("testWithdraw")); //Add inidividual tests
$tSuite->addtest(new AccountTester("testDeposit")); //加入专门测试方法
$tSuite->addtest(new AccountTester("testTransferFrom"));
$res = new TextTestResult(); //Creation of the Result 建立一个测试结果类
$tSuite->run(&$res); //Run of the test 运行测试
$res->report(); //Print results 输出测试结果。
?>
 
程序说明:
        首先创建测试套件对象tSuite,然后逐一加入专门测试方法,addtest方法的参数是测试方法的再创建测试报告对象,随之运行测试。测试发现错误的结果由TestResult类捕捉,TestResult可以定制一套text/html的错误报告。如果有必要你也可以自己编写输出部分。测试结果封装在TestResult类中,为了输出测试结果。我们采用了phpUnit提供的另外一个类 TextTestResult类,它可以输出文本或超文本格式的报告。当然我们也可以自己定制一个新的TestResult的子类控制更复杂的输出格式。
 
提示和技巧
        1、在编写一个新的测试套件完成之后,我们可以先引入一个小小的bug以证明测试套件可以正常运行。
        比如,在本例account类中,我们故意引入一个有问题的函数。
<?php
function withdraw($amount){
$this->balance -= $Amount;
// 变量名大小写错误,本意是调用$amount参数,结果引入一个新变量$Amount。
}
?>
        好,现在让我们运行测试套件,如果不出意外的话,我们将很快发现错误之处。
        2.要指出的是,并非所有的方法都需要测试。你只需对相关的方法进行测试。
        3.如果在开始编码前就写好测试代码,会使你更进一步明白你的程序到底需要完成什么样的任务。
        现在,通过引入phpUnit的测试套件类,你可以发现找bug的时间缩短了,而你作为一个程序员的工作效率也提高了。
        那么,尽情享受抓虫子的乐趣吧。祝您好胃口。<

文章来源于领测软件测试网 https://www.ltesting.net/

22/2<12

关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网