Plack::Test + HTTP::Request::Common 世の中には Plack::Test + HTTP::Request::Common という方法もあるが、この場合ブラウザを模したようなテストを書くと意外にも破綻しやすい。とりわけセッション周りの挙動が必須になると大変な手間になる。 LWP::UserAgent + LWP::Protocol::PSGI 最近は LWP::UserAgent + LWP::Protocol::PSGI で楽をするような方法で書くようにしている。ユーザー寄りのテスト(ログイン後の処理やCSRF対策用のトークンが必須等)をわりと楽に書ける点がメリット。 subtest と scope のメリットも享受できる /zento+/ 方式が見通し良く出来そう。*1 サンプル Some::Middleware::CSRFDefenderのテストを書く