2011-10-05 62 views
7

我正在使用一個web應用程序,通常它運行在Apache下的mod_perl中。我和同事正在嘗試做一些單元測試。是否有任何好的工具或技術用於模擬會話和請求等,這些可以幫助我們在Web服務器上下文之外執行此代碼?爲單元測試嘲弄Apache會話數據

回答

3

如果您使用的是mod_perl 1,則有mod_perl附帶的Apache::FakeRequest。它不是請求對象的完整模擬,所以你必須添加一些你自己的方法。如果你的代碼使用Apache::Request更是如此。還有更多的cookies和上傳。大多數情況下,您將花費大量的時間與Test::MockObject。幸運的是,Apache對象接口非常簡單。

如果可能的話,你應該考慮切換到一個基於Plack的框架(Catalyst,Dancer等),它們提供了更強大的測試和調試功能。如果你使用mod_perl2,你很幸運!很容易(相對於mod_perl 1)用Plack包裝mod_perl2應用程序。 Plack::App::FakeApache會爲您完成大部分工作。 Here is a discussion勾畫出各種技術和好處。

+0

mod_perl 2還有[Apache2 :: FakeRequest](https://metacpan.org/pod/Apache2::FakeRequest)。 – Flimm