【问题标题】:PHPunit set refererPHPunit 设置引用
【发布时间】:2014-12-04 21:53:56
【问题描述】:

我有如下代码想要测试

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() 的值?或者如果我想将函数referred_from_site() 的值设置为TRUE,该怎么做?

【问题讨论】:

    标签: php testing phpunit


    【解决方案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' 一样乱用它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-16
      • 2011-03-19
      • 2011-04-01
      • 2016-02-24
      • 2016-05-15
      • 2016-04-23
      • 2016-02-18
      • 2011-09-19
      相关资源
      最近更新 更多