我正试图为基于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);
}
现在视图数据被重置,但同样的问题变成了响应输出,它会在某些地方积累,并且我从多个控制器动作得到累积结果。
答案 0 :(得分:0)
我目前的解决方案是:
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);
}