もう承知の方は承知かとおもいますが、最近使って感動したのでメモ。 MySQLをDBにもったモジュールのテストにokukazuho wareであるTest::mysqldはすごいいい感じっす。
Test::mysqld automatically setups a mysqld instance in a temporary directory, and destroys it when the perl script exits.
テストコードの中などで使って、mysqldを全てテンポラリーなディレクトリで立ち上げてくれて、 そのテストが終わったら(ブロックを抜けたら)自動的にシャットダウン&そのディレクトリものごと削除してくれるという代物。 がががーとほんとに「自動的に」やってくれる感がたまらない。 以下がTest::mysqld付属のテストをダンプ付きでやった時のスクリーンショット。 これでなんとなく雰囲気がわかるはず。
そこで、Kailasのプロジェクトで使いだしました。今のところは 個々のメソッドについては単体のテストスクリプトでテストして、 「usecase」って名前のテストスクリプトでそのAPIを使う全体のユースケースをテストしてみてます。 えっとーFailしてますが(汗)、まぁこんな感じで、シナリオが再現できるので楽しいです。
実はこのモジュール、JPA会長のlestrratさん(牧さん)に教えてもらったのですが、 あの方はMakefile.PLにいろいろ仕込ませてうはうはしているみたいですね。
ということで、まだ使ったこと無い人は一度試してみると楽しいかもですよ!