PHP单元测试使用手册
1 單元測試簡介
1.1 單元測試
單元測試:是指對軟件中的最小可測試單元進行檢查和驗證。(單一模塊、一個過程、一個函數等)
1.2 單元測試范圍和目標
? ? 單元測試包含計劃階段、設計階段、實現階段和執行階段。起始于詳細設計,主要是各模塊的源代碼進行測試,直到單元階段結束后終止。此時主要是PHP單元測試。
單元測試的目標是隔離程序部件并證明這些單個部件是正確的。一個單元測試提供了代碼片斷需要滿足的嚴密的書面規約。
2 安裝與使用
2.1 安裝PHPUnit
1、在Linux中下載PHPUnit ?wget https://phar.phpunit.de/phpunit.phar
2、添加執行權限 chmod +x phpunit.phar
3、更改路徑mv phpunit.phar ?/usr/local/bin/phpunit
4、查看phpunit版本?phpunit --version
2.2 使用
1、如有詳細設計文檔,先仔細閱讀詳細設計文檔;針對需要測試的PHP代碼先進行靜態走讀(查看是否正規編寫、查看是否有邏輯錯誤、查看是否有未實現的功能等。)
2、編寫測試腳本(以xxx.php為例)
1)首先是調用xxx配置文件以及調用PHPunit
2)然后測試模塊加載類
3)最后編寫測試用例(根據php代碼,分析等,傳入正確參數、錯誤參數、缺失參數、多余參數、路徑覆蓋、條件判斷等)
訪問私有函數public?function?testuserTechDonateResource(){print("資源爭奪戰個人科技貢獻");for?($i=0;?$i<=20;?$i++){//資源爭奪戰?8基礎戰力,9幸運倍率,10守城加成,11寬度$boss?=?new?GangTech(144540,136);$method?=?new?ReflectionMethod('GangTech','userTechDonateResource');$method->setAccessible(true);$tech_id?=?9;$type?=?3;//資源爭奪戰$result?=?$method->invoke($boss,$tech_id,$type);var_dump($result);$this->assertArraySubset(["result"=>"true"],array("result"=>"true","code"=>0,"msg"=>"成功","data"=>array("next_score"=>60,"star"=>3)));}}例子:1public?function?testPublishGuessodds(){echo?"odds為負數!\n";$guess?=?new?GameGuess();$uid?=?186;$guessdesc?=?"這是我的猜猜猜22222";//$options?=?array(array('option_name'=>'我是誰',?'odds'=>1.6),array('option_name'=>'我是誰2',?'odds'=>1.5));//傳入多組$options[]?=?array('option_name'=>'是是是是是',?'odds'=>-1.6);//傳入單組$aborttime?=?'1449049541';??$result?=?$guess->publishGuess($uid,$guessdesc,$options,$aborttime);//?var_dump($result);$this->assertEquals('賠率設置不合法',$result->msg);} 例子2:public?function?testbestlist(){print?("\n?城市轉轉轉押注情況列表\n");$list?=?new?GameCitytrun();$data?=?array('uid'?=>183?,?'gtypeid'?=>20?);$result?=?$list->betList($data);var_dump($result);$this->assertTrue(true);} 例子3:public?function?testdoSpin(){print?("搖獎生成隨機數,作為×××的布局\n");$DSp?=?new?GameBetTiger();$method?=?new?ReflectionMethod('GameBetTiger','doSpin');$method->setAccessible(true);$res_num?=?array();$this->res_num?=?array("1"?=>?Array("11"?=>?4,"21"?=>?2,"31"?=>?5),"2"?=>?Array("12"?=>?5,"22"?=>?2,"32"?=>?7),"3"?=>?Array("13"?=>?4,"23"?=>?2,"33"?=>?4),"4"?=>?Array("14"?=>?2,"24"?=>?2,"34"?=>?9),"5"?=>?Array("15"?=>?2,"25"?=>?5,"35"?=>?8));$result?=?$method->invoke($DSp);var_dump($this->res_num);????????3、執行對比返回結果 phpunitxxx.php
1)? 正確數據發送請求時,查看返回數據是否正確、是否會報錯、數據庫中是否正常插入數據、關閉相關數據庫是否能正常工作等。
2)錯誤數據發送請求時,查看返回數據是否有異常處理、是否有報錯、數據是否有異常、等。
3)發現BUG,在提交BUG指向相關開發并督促修復bug,只至關閉BUG。
轉載于:https://blog.51cto.com/engine/1610853
總結
以上是生活随笔為你收集整理的PHP单元测试使用手册的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mac下好用的取色器 Sip
- 下一篇: 骨雕工艺品收藏价值分析