アプリケーションをテストしたい。自分のviewHelpers(actionHelpers)をテストしたいところまで、すべてうまくいきます。問題は、自分の viewHelper で url-ViewHelper を使用してリンクを生成したいということです。
したがって、私はこのステートメントを使用します。
$urlHelper = $serviceLocator->getServiceLocator()->get('ViewHelperManager')->get('url');
$urlHelper->__invoke('test',array(),array(),true);
これはうまくいきます。
しかし今、ビュー ヘルパーが使用されているアプリケーションの一部をテストしたいと考えています。url_ViewHelper を使用するところまで、すべてが正常に機能します。
次の例外が発生します。
Fatal error: Call to a member function getRouteMatch() on a non-object in ****\vendor\zendframework\zendframework\library\Zend\Mvc\Service\ViewHelperManagerFactory.php on line 70
テストのセットアップ方法に何か問題がありますか?
$serviceManager = Bootstrap::getServiceManager();
$this->controller = new IndexController();
$this->request = new Request();
$this->routeMatch = new RouteMatch(array('controller' => 'index'));
$this->event = new MvcEvent();
$config = $serviceManager->get('Config');
$routerConfig = isset($config['router']) ? $config['router'] : array();
$router = HttpRouter::factory($routerConfig);
$this->event->setRouter($router);
$this->event->setRouteMatch($this->routeMatch);
$this->controller->setEvent($this->event);
$this->controller->setServiceLocator($serviceManager);
助けてくれてどうもありがとう!