たまには呪文をとなえてみるか:仕事版

アクセスカウンタ

zoom RSS [Perl] PerlUnitというか、Test::Unit

<<   作成日時 : 2007/05/18 19:01   >>

なるほど(納得、参考になった、ヘー) ブログ気持玉 6 / トラックバック 1 / コメント 0

こんばんは。
飲みに行くのかどうかそろそろ教えてほしいお爺さんです。まあ、飲みに行くと食べまくるので、さらにいえば、水曜日にすでに飲んでいるので、今日行かなくても全然かまわないんですが。
さて、本題はTest::Unitです。

Perlの単体テストツールというと、Test::MoreやTest::Baseも有名ですが、Test::UnitはeXtreme Programmingで使うxUnitツールですね。
使うには、XPの思想を理解しておかないとダメでしょう。ついでに言えば、TDDも。

Test::Unit
 http://perlunit.sourceforge.net/
 http://search.cpan.org/~mcast/Test-Unit-0.25/

少し嫌な話なんですが、どーもメンテ停止??状態の模様(参考 http://www.naney.org/diki/dk/Test::Unit.html)ですね。
実際、更新が2005/10から止まってます。

miyagawa先生の使い方の参考(2001年だからとても古い・・・)
 http://bulknews.net/lib/mailmag/15/mag.txt

非常に参考になるページ
 http://www.aglabo.com/agl/proevo/perl/install/perlunit.html
 http://www.aglabo.com/agl/proevo/perl/howto/unitmemo.htm
 http://www.aglabo.com/agl/proevo/perl/howto/perlunit.htm
 http://www.aglabo.com/agl/proevo/perl/howto/perlunit2.htm

で、簡単なサンプルをテストしてみた。
お題はTest::Baseで作ったものから流用。

元ネタ
 http://cast-a-spell.at.webry.info/200612/article_7.html

テストコード




#!/usr/bin/perl

use Test::Unit;
use JSON::Syck;

# your code to be tested goes here

sub json {JSON::Syck::Dump( $_[0] ) }

# define tests

sub test_Simple_JSON_Testfoo { assert(json(eval qq{{ foo => 'bar' }}) eq q{{"foo":"bar"}} ,"test1"); }
sub test_Simple_JSON_Testfoo2 { assert(json(eval qq{{ hoge => 'bar' }}) eq q{{"hoge":"bar"}} ,"test2"); }

# set_up and tear_down are used to
# prepare and release resources need for testing

sub set_up { }
sub tear_down { }

# run your test

create_suite();
run_suite();



実行結果




[root@spaurh Test]# perl test3.pl
..
Time: 0 wallclock secs ( 0.00 usr + 0.00 sys = 0.00 CPU)

OK (2 tests)



ポイント。

  1. 自動的に、testXXXXのようなサブルーチンを起動してくれる。どうなんかなーと思ったところはあるが、慣れれば別に問題ないような。
  2. set_upとtear_downは、それぞれのテスト実施前、実施後に実行される。


で、印象なんですが、

  1. サブルーチンを書くのが面倒。
  2. テストコードとテストデータがまったく分離されていないように感じられた。

という所。
使えなくはないけれど、Test::Baseの方が好きだなあ、という感じ。

あー、インストールはとても簡単でしたよ、ハイ。
 


 朝: 540kcal:黒ウーロン茶、ヨーグルト(140)、カレーパン(400)
 昼: 431kcal:ドーナツ(300)、牛乳(131),
 お: 382kcal:プリッツ
----------------
1363kcal
ドーナツと牛乳だけじゃ、やっぱり6時間持たないorz
同じカロリーなら、米食べたほうがいいなあ。でも、牛乳と米かあ。。。

この記事は5分で読めます。

テーマ

関連テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ
気持玉数 : 6
なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

トラックバック(1件)

タイトル (本文) ブログ名/日時
「[Perl] PerlUnitというか、Test::Unit」について
「[Perl] PerlUnitというか、Test::Unit」について ...続きを見る
isoya9の日記
2007/05/19 08:45

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
URL(任意)
本 文
[Perl] PerlUnitというか、Test::Unit たまには呪文をとなえてみるか:仕事版/BIGLOBEウェブリブログ
文字サイズ:       閉じる