如何使用 PHPUnit 在控制器操作中测试重定向?
class IndexControllerTest extends PHPUnit_Framework_TestCase
{
    protected $_controller;
    protected $_request;
    protected $_response;
    protected $_routeMatch;
    protected $_event;
    public function setUp()
    {
        $this->_controller = new IndexController;
        $this->_request = new Request;
        $this->_response = new Response;
        $this->_routeMatch = new RouteMatch(array('controller' => 'index'));
        $this->_routeMatch->setMatchedRouteName('default');
        $this->_event = new MvcEvent();
        $this->_event->setRouteMatch($this->_routeMatch);
        $this->_controller->setEvent($this->_event);
    }
    public function testIndexActionRedirectsToLoginPageWhenNotLoggedIn()
    {
        $this->_controller->dispatch($this->_request, $this->_response);
        $this->assertEquals(200, $this->_response->getStatusCode());
    }
}
当我运行单元测试时,上面的代码会导致此错误:
Zend\Mvc\Exception\DomainException: Url plugin requires that controller event compose a router; none found
这是因为我在控制器操作中进行了重定向。如果我不做重定向,单元测试就可以工作。有任何想法吗?