2014-03-01 49 views
0

我想爲一個相當大且複雜的項目編寫測試(比從未更好)。在php中爲phpunit處理退出

我所做的「代碼」通過引導和測試運行的,但我有一些問題,在項目中退出命令...

我有這樣

class website_call_direct_Test extends PHPUnit_Framework_TestCase 
{ 

    public function execute(array $req){ 
    $_REQUEST = array(); 
    error_reporting(E_ALL & ~E_DEPRECATED & ~E_NOTICE & ~E_STRICT); 
    foreach($req as $k => $v){ 
     $_REQUEST[$k] = $v; 
    } 
    $_GET = &$_REQUEST; 
    $_POST = &$_REQUEST; 
    ob_start(); 
    include(G::$baseDir ."/index.php"); 
    $output = ob_get_clean(); 
    return $output; 
} 
/** 
* @runInSeparateProcess 
*/ 
public function testPrecaution() 
{   
    $req = array(); 
    $req['ajaxreq'] = 1; 
    $req['m'] = "precaution"; 
    $req['type'] = "list"; 
    $req['mode'] = "default"; 
    $req['wnd'] = "new";  
    $output = $this->execute($req); 
    echo $output; 
    //SOME validation with the output 
    $this->assertEquals(false, strpos("...", $output)); 
    throw new Exception(); 
} 
} 

的問題是識別TestClass該異常不會被拋出,因爲腳本以幾個點退出。我知道我可以直接測試一些類,但我想確保某些調用某些變量不會產生錯誤/異常。除了刪除項目中的每個出口之外,是否有任何解決方法?

回答

0

看起來像你正在測試整個應用程序。我不認爲有任何方法可以禁止退出判決。

解決方法(以及測試整個應用的推薦方式)是使用curl訪問網站,並檢查HTML是否包含您期望的內容。

更好的是,如果您使用可以讓您使用選擇器或XPath查詢HTML的抓取解決方案,如this one