PHPunit设置referer

时间:2014-10-09 20:27:37

标签: php testing 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脚本中,我可以从setUP()函数设置$ _SERVER ['HTTP_HOST']的值。但是,如何设置$ this-> request-> referrer()的值?或者如果我想将函数referenced_from_site()的值设置为TRUE,该怎么做?

1 个答案:

答案 0 :(得分: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,并像$server['HTTP_HOST'] = 'domain'一样搞乱它