我正在使用一个Web应用程序,通常在Apache下运行mod_perl.一位同事和我正在尝试进行一些单元测试.是否有任何好的工具或技术可用于模拟会话和请求等,以帮助我们在Web服务器上下文之外运行此代码?
解决方法
如果您使用的是mod_perl 1,那么mod_perl会附带
Apache::FakeRequest.它不是请求对象的完整模拟,因此您必须添加自己的一些方法.如果您的代码使用
Apache::Request,则更多.还有更多的Cookie和上传.大多数情况下,你将在
Test::MockObject上花费大量时间.幸运的是,Apache对象接口非常简单.
如果可能的话,您应该考虑切换到基于Plack的框架(Catalyst,Dancer等),它提供了更强大的测试和调试功能.如果你正在使用mod_perl2,那你很幸运!使用Plack包装mod_perl2应用程序很容易(相对于mod_perl 1). Plack::App::FakeApache为您完成大部分工作. Here is a discussion概述了各种技术和好处.