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

您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > PHPUnit
教你用phpUnit調(diào)試php程序
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2013/3/26 16:05:32 ] 推薦標(biāo)簽:

    加入專門的測試代碼
  
    現(xiàn)在,我們可以往向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里的斷言)方法是測試的關(guān)鍵部分。如果在assert中的條件表達(dá)式為真,那么測試通過。否則返回錯(cuò)誤。由于assert方法大都用于判斷兩個(gè)變量的值是否相等。因此,testclass類引入了assertEquals方法專門實(shí)現(xiàn)這個(gè)功能。AssertEquals方法中有3個(gè)參數(shù),依次分別為:期望值,測試值,兩值不相等時(shí)返回的消息提示串。
  
    運(yùn)行測試過程
  
    好了,現(xiàn)在可以運(yùn)行一下我們編好的測試程序了。我們還必須建立一個(gè)runtest.php測試程序來運(yùn)行所有的測試過程。
  
    runtest.php源代碼如下:
  
    <?php
  
    $tSuite = new TestSuite(); //creation of the test suite object 創(chuàng)建測試套件對象
  
    $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 建立一個(gè)測試結(jié)果類
  
    $tSuite->run(&$res); //Run of the test 運(yùn)行測試
  
    $res->report(); //Print results 輸出測試結(jié)果。

    ?>
  
    程序說明:
  
    首先創(chuàng)建測試套件對象tSuite,然后逐一加入專門測試方法,addtest方法的參數(shù)是測試方法的 再創(chuàng)建測試報(bào)告對象,隨之運(yùn)行測試。測試發(fā)現(xiàn)錯(cuò)誤的結(jié)果由TestResult類捕捉,TestResult可以定制一套text/html的錯(cuò)誤報(bào)告。如果有必要你也可以自己編寫輸出部分。測試結(jié)果封裝在TestResult類中,為了輸出測試結(jié)果。我們采用了phpUnit提供的另外一個(gè)類TextTestResult類,它可以輸出文本或超文本格式的報(bào)告。當(dāng)然我們也可以自己定制一個(gè)新的TestResult的子類控制更復(fù)雜的輸出格式。
  
    提示和技巧
  
    1、在編寫一個(gè)新的測試套件完成之后,我們可以先引入一個(gè)小小的bug以證明測試套件可以正常運(yùn)行。
  
    比如,在本例account類中,我們故意引入一個(gè)有問題的函數(shù)。
  
    <?php
  
    function withdraw($amount){
  
    $this->balance -= $Amount;
  
    // 變量名大小寫錯(cuò)誤,本意是調(diào)用$amount參數(shù),結(jié)果引入一個(gè)新變量$Amount.
  
    }
  
    ?>
  
    好,現(xiàn)在讓我們運(yùn)行測試套件,如果不出意外的話,我們將很快發(fā)現(xiàn)錯(cuò)誤之處。
  
    2.要指出的是,并非所有的方法都需要測試。你只需對相關(guān)的方法進(jìn)行測試。
  
    3.如果在開始編碼前寫好測試代碼,會(huì)使你更進(jìn)一步明白你的程序到底需要完成什么樣的任務(wù)。
  
    現(xiàn)在,通過引入phpUnit的測試套件類,你可以發(fā)現(xiàn)找bug的時(shí)間縮短了,而你作為一個(gè)程序員的工作效率也提高了。

上一頁12下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd
主站蜘蛛池模板: 粉色视频导航 | 亚洲人成网站色7777 | 26uuu亚洲| 欧美深夜福利网站在线观看 | a国产视频 | 天天天天射| 涩涩福利网址导航 | 免费久久一级欧美特大黄 | 亚洲一区导航 | 澳门毛片免费播放 | 亚洲欧美人成人综合在线50p | 精品国产日韩亚洲一区在线 | 亚洲国产欧美一区 | 精品久久香蕉国产线看观看亚洲 | 我亲爱的朋友们免费看 | 日本一区二区三区在线看 | 亚洲激情在线播放 | 亚洲成年看片在线观看男男 | 欧美成人免费videos | 国产日韩欧美亚洲精品95 | 亚洲一区二区中文字幕 | 五月天激情综合小说专区 | 色爱区综合激情五月综合激情 | 亚欧乱色视频 视频在线 | 日比视频在线观看 | 欧美性高清另类videosex | 亚洲一区二区三区高清视频 | 久久婷婷五月综合色丁香 | 插菊花网| 欧美日韩性视频 | 日韩骚片 | 日韩精品第一区 | 99热精品一区 | 最新在线鲁丝片eeuss第1页 | 欧日韩美香蕉在线观看 | 亚洲欧美人成综合导航 | 片成年免费观看网站黄 | 一级一级一片免费高清 | 亚洲网站在线看 | 一二三四视频社区在线中文1 | 香蕉蕉亚亚洲aav综合 |