亚洲好骚综合-亚洲黄色录像-亚洲黄色网址-亚洲黄色网址大全-99久久99久久-99久久99久久精品国产

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > PHPUnit
用phpunit調試PHP程序
作者:網絡轉載 發布時間:[ 2014/1/3 11:37:10 ] 推薦標簽:phpunit PHP

        現在,我們可以往向AccountTester類加入測試代碼了。
 
<?php
 
// Make a withdrawal of 25 units from _ac1.
// _ac1's initial balance is 100
 
function testWithdraw(){
$this->_ac1->withdraw(25);
$this->assert($this->_ac1->getBalance() == 75); // 100 - 25 = 75
}
 
// Make a deposit of 10 units into _ac2.
// _ac1's initial balance is 20
 
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的時間縮短了,而你作為一個程序員的工作效率也提高了。
        那么,盡情享受抓蟲子的樂趣吧。祝您好胃口。

上一頁12下一頁
軟件測試工具 | 聯系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網站地圖
滬ICP備07036474 2003-2017 版權所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 最近的中文字幕视频完整 | 国产精品香蕉成人网在线观看 | 色视频在线观看在线播放 | 成年在线视频免费视频观看 | 久久综合九色婷婷97 | 国产精品午夜高清在线观看 | 天天拍拍天天爽免费视频 | 成人免费国产欧美日韩你懂的 | 欧美乱理伦另类视频 | 亚洲综合一二三区 | 免费人成年短视频在线观看网站 | 91亚洲国产成人久久精品网站 | 国产成人精品无缓存在线播放 | 日日摸夜夜欧美一区二区 | 欧美日韩视频一区二区 | 欧美综合区自拍亚洲综合天堂 | 激情视频亚洲 | 九九久久国产精品免费热6 九九久久亚洲综合久久久 九九伦理 | xxxx日本69xxxxx | 性欧美暴力猛交xxxxx高清 | 日本免费一区二区三区在线看 | 最近的最新的中文字幕在线 | 国产s色| 欧美深夜福利网站在线观看 | 污污免费视频 | 美女黄频a美女大全免费皮 美女黄免费网站 | 免费看又黄又爽又猛的视频软件- | 欧美福利 | 天天做天天爱天天做天天吃中 | 国产97色在线 | 免费 | 色综合97天天综合网 | 日本一视频一区视频二区 | 亚洲欧美日韩在线一区二区三区 | 日韩黄色影视 | a免费看 | 一级视频在线观看 | 成人看片黄a免费看视频 | 国产欧美日韩精品第一区 | 最近免费中文字幕大全高清片 | 亚洲精品第一国产综合野 | 2020亚洲欧美日韩在线观看 |