我这里有一个SymfonyBundle,它实际上不是一个自定义的EventDispatcher和一个EventListener .
我如何进行单元测试此代码?
我知道如何为控制器等创建功能测试,但我不确定如何为这个调度程序和监听器编写测试 .
有人能指出我正确的方向,谷歌似乎并没有帮助我在这一点 .
提前致谢 .
山姆J.
edit: 04/04/2014 :This是我试图为其创建测试的包
我已经设置了测试来检查是否加载了两个服务(调度程序和监听程序),但现在我需要测试功能性...例如,检查在MY调度程序上触发的事件是否在kernel.terinate上的REAL调度程序上触发 .
EDIT 所以我很好地假设我只需要触发我的事件,然后以某种方式进入kernel.terminate,并检查我的事件是否被真正的调度员解雇了,但是如何...
1 回答
您可以通过模拟所需的所有必要工具(例如,从我的项目中)来对您的监听器进行单元测试:
正如您所看到的,我正在创建Event Listener所需的每个对象,以便对其行为进行单元测试 .
你也可以采用功能性的方式 . 引导Symfony内核并为事件触发创建条件,然后测试触发事件后需要的预期条件:
如您所见,我首先记录用户,然后对上传表单进行实际请求 . 之后我断言我的响应应该是重定向到主面板 . Symfony正在触发事件,这个事件正在返回我需要断言的RedirectResponse .
我的建议是你尝试编写单元和功能测试,它会使你的应用程序处于更稳定的状态 .
EDIT
添加了有关如何在此PR中测试事件调度程序本身的特定问题的答案:
https://github.com/whitewhidow/AsyncDispatcherBundle/pull/1/files