Test::Fixture::DBIC::Schema

 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->{data} );
+        $result->{ $row->{name} } = $schema->resultset( $row->{schema} )->update_or_create( $row->{data} );
     }
     return $result;
 }

 こういう方がいいかな、と思いました。あと、挿入メソッドの返り値を利用してSQLの発行を半分に抑えれば、パフォーマンスも少し上がるのではないかと。
 にしても、テスト用ダミーデータの作成はホントに疲れる…。
(追記)
 ふと思ってDBIx::MoCo::Fixtureも見てみたら、予想通り同じ問題を抱えてる…
 データを入れる仕組みが違うので、同じ問題は起こりえません。