2014-10-09 26 views
0

我有這樣的代碼下面,我想測試PHPUnit的設置引薦

class Controller_test{ 
    public function action_index(){ 
     if(!$this->referred_from_site()){ 
      echo "Un-authorized request"; 
      return; 
     } 
     echo "Request OK"; 
    } 
    public function referred_from_site(){ 
     if(strpos($this->request->referrer(),$_SERVER['HTTP_HOST']) !== FALSE){ 
      return TRUE; 
     } 
     return FALSE; 
    } 
} 

現在,PHPUnit的腳本中,我可以設置$ _ SERVER [「HTTP_HOST」]從設置()函數的值。但是,如何爲$ this-> request-> referrer()設置值?或者如果我想將函數referenced_from_site()的值設置爲TRUE,該怎麼做?

回答

1

這是一個功能,但不是一個參數。我建議如果你想設置它,使用一個私有變量。 就是這樣。

class Controller_test{ 
    private referred = false; 

    public function action_index(){ 
     if(!$this->referred){ 
      echo "Un-authorized request"; 
      return; 
     } 
     echo "Request OK"; 
    } 

    public function referred_from_site(){ 
     if(strpos($this->request->referrer(),$_SERVER['HTTP_HOST']) !== FALSE){ 
      $this->referred = TRUE; 
     } 
     $this->referred = FALSE; 
    } 
} 

順便說一句,我不認爲這是一個好主意,改變$_SERVER['HTTP_HOST']值,只需使用其他參數如$服務器= $ _ SERVER和惹它像$server['HTTP_HOST'] = 'domain'