为什么在我的Zend Framework控制器上的PhpUnit集成测试中没有达到“preDispatch”?

时间:2014-08-02 02:02:21

标签: php zend-framework phpunit integration-testing

我有一个扩展MyCustom_Controller_Action的IndexContoller,它扩展了Zend_Controller_Action。

我注意到我的集成测试(当我执行$this->dispatch('/')时)从不触发我的IndexController,MyCustom_Controller_Action或Zend_Controller_Action的preDispatch方法。但是,这些类的init()方法已达到。

如何修复我的测试设置,以便调用preDispatch函数(如我的生产应用程序中的正常流程)?

(需要调用它们,否则我无法测试应用程序中发生实际的内容。)

PHPUnit 3.5.15

Zend Framework 1.12

1 个答案:

答案 0 :(得分:0)

我错了。到达了preDispatch函数

我最终通过Xdebug证明了这一点。我让Xdebug与Netbeans和Phpunit合作。我找到了一个非常有用的个性化逐步发电机。我创建了一个我的php.ini的匿名副本并将其上传到http://xdebug.org/wizard.php并按照结果执行步骤,现在我可以通过Mac终端运行以下内容:

php -dxdebug.remote_enable=1 -dxdebug.remote_host=127.0.0.1 -dxdebug.remote_autostart=On -dxdebug.remote_port=9001 -dxdebug.remote_mode=req /usr/local/opt/php55/bin/phpunit --filter testHeaderLocaleSwitchLoggedOut --bootstrap /code/master/tests/test.php --configuration /code/master/tests/phpunit.xml /code/master/tests/integration

然后Netbeans显示代码在我的断点处停止的地方,让我慢慢走过。