【问题标题】:Zend Framework 1 - How to reset view data, but not session data in functional integrational tests?Zend Framework 1 - 如何在功能集成测试中重置视图数据,而不是会话数据?
【发布时间】:2017-06-01 02:56:55
【问题描述】:

我正在努力为基于 ZF1 的项目开发测试。在我之前已经开发了这些测试,但我发现它们工作不正常。在测试中调用$this->dispatch('/some-path') 会执行控制器的操作,但在多个$this->dispatch() 调用之间不会清除视图数据。在视图数据下,我的意思是在控制器操作中通过$this->view->assign() 分配的数据。我只需要在测试中清除查看数据,而会话数据应在$this->dispatch() 调用之间保留。我曾尝试扩展Zend_Test_PHPUnit_ControllerTestCase::dispatch() 并对其进行修改:

public function dispatch($url = null)
{
    // Reset view data
    $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
    $viewRenderer->view = null;

    return parent::dispatch($url);
}

现在视图数据被重置,但响应输出也出现同样的问题,它在某处累积,我从多个控制器操作中获得累积结果。

【问题讨论】:

    标签: zend-framework phpunit integration-testing


    【解决方案1】:

    我目前的解决方案是:

    public function dispatch($url = null)
    {
        // Reset previous response
        $this->resetResponse();
        $this->getResponse();
    
        // Reset view data
        $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
        $viewRenderer->view = null;
    
        return parent::dispatch($url);
    }
    

    【讨论】:

      猜你喜欢
      • 2018-10-03
      • 1970-01-01
      • 1970-01-01
      • 2017-10-20
      • 2016-03-08
      • 1970-01-01
      • 1970-01-01
      • 2012-07-10
      • 1970-01-01
      相关资源
      最近更新 更多