我无法解决这个问题。
$this->_request->setBasePath('http://localhost/');
$this->_request->setModuleKey('admin');
$this->_request->setControllerKey('controller-page');
$this->_request->setActionKey('index');
$this->_sslRedirect->preDispatch($this->_request);
$this->assertRedirectRegex('/https:/');
在我的控制器插件中 preDispatch() 可能会也可能不会重定向到 SSL。这在浏览器中有效,但是我无法为它编写测试。测试失败,如下所示:
Failed asserting response redirects to URL MATCHING "/https:/"
/srv/app/zend/library/Zend/Test/PHPUnit/Constraint/Redirect.php:190
/srv/app/zend/library/Zend/Test/PHPUnit/ControllerTestCase.php:764
/srv/app/www/tests/lib/Saffron/Controller/Plugin/SslRedirectTest.php:36
/usr/bin/phpunit:46
我还在 preDispatch() 行之后立即尝试在 Zend_Test_PHPUnit_ControllerTestCase 中使用 $this->dispatch() ,但由于某种原因,这导致了错误 404 Not Found...
有任何想法吗?