模拟Apache会话数据以进行单元测试

Bla*_*ppo 7 apache perl unit-testing

我正在使用一个Web应用程序,通常在Apache下运行mod_perl.一位同事和我正在尝试进行一些单元测试.是否有任何好的工具或技术可用于模拟会话和请求等,以帮助我们在Web服务器上下文之外运行此代码?

Sch*_*ern 3

如果您使用 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会为您完成大部分工作。 以下讨论概述了各种技术和优点。