我在 SimpleTest 中对 Zend_Controller_Action 的一些扩展进行单元测试。我希望能够使用 Redirector 操作助手的 set 方法设置重定向 url,然后使用 Redirector 的 redirectAndExit() 方法在该过程的后期实际重定向。从阅读文档并查看动作控制器、重定向器和响应类中的代码来看,这个过程似乎没有像我预期的那样工作。
这是我编写的 UnitTestCase 方法:
public function testSetGoToUrl() {
$request = new Zend_Controller_Request_Http();
$response = new Zend_Controller_Response_Http();
$controller = new App_Zend_Controller_Action($request, $response, array());
$controller->getHelper('redirector')->setGoToUrl('/');
}
App_Zend_Controller_Action 类仅仅是抽象类 Zend_Controller_Action 的具体扩展。我在这里所做的只是实例化控制器并设置重定向 url。正如预期的那样,SimpleTest 报告器首先发送标头。但是这个测试方法会产生一个“headers sent”异常,我不明白为什么。我不知道在这种情况下调用了任何 run() 或 dispatch() 方法。
发送第二组标头的是什么?