タグ

2014年11月17日のブックマーク (3件)

  • おそらくはそれさえも平凡な日々: Plack::Middlewareで$envの中身を見るテストを書く方法

    Plack::Middlewareの中で $env->{'psgix.hoge'} 的な何かを突っ込むことはあるん じゃないかと思うが、そのテストをどう書くかという話。 Plack::Testだとレスポンスは見られるが、$envはもう見られない。 結論を言ってしまうと、$envをシリアライズして、response bodyに突っ込んでしまう $appを作るのが乱暴かつお手軽かと思う。 以下サンプルコード。 package Plack::Middleware::Hoge; use strict; use warnings; use parent 'Plack::Middleware'; sub call { my ($self, $env) = @_; $env->{'psgix.hoge'} = 'fuga'; $self->app->($env); } このMiddlewareをテストす

    kfly8
    kfly8 2014/11/17
  • Containerという名のPerlモジュール群 | hirobanex.net

    的には各PODを読めばいいと思うんですが、以下ではちょっとわかりづらい機能や注意したいことをあげていきたい思います。 インターフェースについて 個人的には、上述した例のようなContainerモジュールを継承したクラスを作成するサブクラス化インターフェースがあればいいんじゃないかな?と思うんですが、以下のようなオブジェクト型のインターフェースもあったりします。 use Object::Container; # initialize container my $container = Object::Container->new; # register class $container->register('HTML::TreeBuilder'); # register class with initializer $container->register('WWW::Mechanize

    kfly8
    kfly8 2014/11/17
  • HTTP通信を含むモジュールのテスト #2 - Articles Advent Calendar 2011 Test

    はじめに こんにちは。ikasam_a です。 8日目に bayashi さんが [/articles/advent-calendar/2011/test/8:title=HTTP通信を含むモジュールのテスト] というエントリを書かれていますが、今日はその続編的な話をします。 フェイクとスタブ 前のエントリでは Test::Fake::HTTPD を使ってフェイクサーバを立ててテストする、という手法が紹介されています。これは テストダブル (Test Double) で言うところの Fake という概念で、"動作するけど手抜き" なサーバを用意して実際に HTTP 通信可能にするってわけです。これで実際のサービスに DoS することなくテストできるので、積極的に使いたいところです。 テストダブルとは何ぞや?という話は、別のエントリでしたいと思いますので、今日はさらっと流してください! この

    HTTP通信を含むモジュールのテスト #2 - Articles Advent Calendar 2011 Test
    kfly8
    kfly8 2014/11/17