タグ

ブックマーク / sun-basix.hatenadiary.org (3)

  • テスト用にディレクトリを生成・コピーするTest::TempDir::Simple - taiyoh独言

    最近になってようやっと、WAFを絡めた機能テストを書くようになってきました…>< 自分のやってる案件の都合等もあると思うのですが、例えば画像をアップして保存する、みたいなパターンは結構多いと思います。 んで、Catalystなんかだと、画像の保存パスを指定するのに、 $c->path_to(qw/path to upload dir/, $filename); 的なことをよくやると思います。 このとき、何も考えずにテストを実行すると、WAF側で指定しているところと同じ場所にファイルが書き込まれてしまうという問題があると思います。 よくあるWAFの設計では、基準になるディレクトリは外から指定できるようになっているので、これを利用して、テストで生成したものはなるべくテスト環境内で完結するようにしたほうがいいのではないかな、と。 一時的なディレクトリの生成には、File::Temptempdi

    テスト用にディレクトリを生成・コピーするTest::TempDir::Simple - taiyoh独言
    dann
    dann 2010/11/21
  • Fixture系モジュールはコールバックで値を入れられる方がいい - taiyoh独言

    例えば日付に絡むテストをしたい時、ダミーデータとしてハードコードしてしまうと、後々、データが古いというだけでテストがコケるという可能性が出てくる。 まあ、可能性というか、実際今僕のところで起きたんだけどさ。 もうちょっと具体例を挙げると、週間ランキングのロジックをテストをしたいとかいうとき、ギリギリ3,4日後くらいまではなんとかなっても、もし1ヶ月先に何らかの事情でそのテストを回したいとき、そんなところで落ちてたら、無駄に原因究明の時間を使う事になる。 ということで、DBIx::MoCo::Fixtureのload_fixtureをちょっと弄る。 { package DBIx::MoCo::Fixture; use Data::Visitor::Callback; our $Substitutions = {}; sub append_substitutions { my ( $key,

    Fixture系モジュールはコールバックで値を入れられる方がいい - taiyoh独言
    dann
    dann 2009/04/01
  • Test::Fixture::DBIC::Schema - taiyoh独言

    DB周りのロジックテストをしたくて導入してみたのですが、リレーションがらみでcreate_relatedメソッドなんかを使ってると、create時にコケてしまうので、 --- Schema.pm 2008-05-10 14:39:59.000000000 +0900 +++ Schema.pm.new 2009-02-27 16:28:24.000000000 +0900 @@ -71,8 +71,7 @@ my $result = {}; for my $row ( @{ $fixture } ) { - $schema->resultset( $row->{schema} )->create( $row->{data} ); - $result->{ $row->{name} } = $schema->resultset( $row->{schema} )->find( $row->{

    Test::Fixture::DBIC::Schema - taiyoh独言
    dann
    dann 2009/02/28
  • 1