У меня есть код, подобный приведенному ниже, который я хочу проверить
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’] из функции setUP (). Но как установить значение для $ this-> request-> referrer ()? или как это сделать, если я хочу установить значение функции refer_from_site () как TRUE?
Это функция, но не параметр. Я предлагаю, чтобы, если вы хотите установить его, используйте закрытую переменную.
Что-то вроде этого.
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, и работайте с ним как $server['HTTP_HOST'] = 'domain'
Других решений пока нет …