Zend framework Zend_测试-在PHPUnit的控制器插件中设置重定向
我一直在尝试使用PHPUnit来测试应用程序。我有它所有的工作,但不能测试重定向 我的重定向发生在Acl控制器插件中,而不是控制器中的操作中 我已将其更改为使用建议的格式Zend framework Zend_测试-在PHPUnit的控制器插件中设置重定向,zend-framework,redirect,phpunit,Zend Framework,Redirect,Phpunit,我一直在尝试使用PHPUnit来测试应用程序。我有它所有的工作,但不能测试重定向 我的重定向发生在Acl控制器插件中,而不是控制器中的操作中 我已将其更改为使用建议的格式 $r = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector'); $r->gotoSimple("index", "index", "default"); 但是这在测试中失败了,响应体是空的,我得到了如下错误 Zend_Dom_Except
$r = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector');
$r->gotoSimple("index", "index", "default");
但是这在测试中失败了,响应体是空的,我得到了如下错误
Zend_Dom_Exception: Cannot query; no document registered
如果我随后更改测试,使分派方法不会导致调用gotoSimple()
,那么测试将正确运行
我应该如何在我的应用程序中执行重定向,以便它能够与Zend_Test
的响应对象一起正确运行
Zend文档分为两行,我试过了,但失败了
谢谢。要测试是否发生了重定向,您需要添加
$this->assertRedirectTo( 'index' );
运行$this->dispatch()后代码>
您无法查询响应正文,因为在重定向的情况下它是空的(这就是异常的来源)。
您可以随时检查响应的实际外观
print_r( $this->getResponse() );
请确保您的操作在重定向后返回任何内容,因为重定向后的代码也会执行
$r = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector');
$r->gotoSimple("index", "index", "default");
return;
或
要测试重定向本身,可以使用断言
请阅读上述手册,因为其中有关于动作挂钩的重要说明。Ah。这是有道理的。但愿我以前知道这一点-所以测试不遵循重定向?它不会用从重定向获得的内容覆盖响应对象-如果这是你现在的意思-现在我知道我可以继续了。一些文档没有提到的东西!我总是在任何类型的重定向之后返回,我认为我的问题源于这样一个事实:我认为测试将返回重定向的内容。现在我知道这不太好。
$r = Zend_Controller_Action_HelperBroker::getStaticHelper('redirector');
return $r->gotoSimple("index", "index", "default");