您好,登錄后才能下訂單哦!
單元測試:是指對軟件中的最小可測試單元進行檢查和驗證。(單一模塊、一個過程、一個函數等)
單元測試包含計劃階段、設計階段、實現階段和執行階段。起始于詳細設計,主要是各模塊的源代碼進行測試,直到單元階段結束后終止。此時主要是PHP單元測試。
單元測試的目標是隔離程序部件并證明這些單個部件是正確的。一個單元測試提供了代碼片斷需要滿足的嚴密的書面規約。
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
1、如有詳細設計文檔,先仔細閱讀詳細設計文檔;針對需要測試的PHP代碼先進行靜態走讀(查看是否正規編寫、查看是否有邏輯錯誤、查看是否有未實現的功能等。)
2、編寫測試腳本(以xxx.php為例)
1)首先是調用xxx配置文件以及調用PHPunit
有些是這樣的: /**************測試加載******************/ const CONFIG_ENV = 'office'; // include_once __DIR__."/../../sdk/Autoload.php"; // include_once "ApiHelper.php"; include('/data/wuheyou_php/trunk/sdk/Autoload.php'); ImportModule('home');
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))); } }
例子:1 public 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。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。