argra****@users*****
argra****@users*****
2013年 11月 2日 (土) 04:17:38 JST
Index: docs/modules/Test-Simple-0.98/Test/Tutorial.pod diff -u docs/modules/Test-Simple-0.98/Test/Tutorial.pod:1.1 docs/modules/Test-Simple-0.98/Test/Tutorial.pod:1.2 --- docs/modules/Test-Simple-0.98/Test/Tutorial.pod:1.1 Sat Nov 2 03:45:04 2013 +++ docs/modules/Test-Simple-0.98/Test/Tutorial.pod Sat Nov 2 04:17:38 2013 @@ -1,3 +1,6 @@ + +=encoding euc-jp + =head1 NAME =begin original @@ -6,7 +9,7 @@ =end original -Test::Tutorial - ²î{IÈeXgð±ÆÉ¢ÄÌ` [gA +Test::Tutorial - ごく基本的なテストを書くことについてのチュートリアル =head1 DESCRIPTION @@ -18,10 +21,10 @@ =end original -I< [[[[[!!!!eXgÍ! ½ð¨¢ÄàeXgÍ! -ÔÁÄàAÞ¿ÅÁÄàAfgCgÉÁÄࢢ¯ÇA -eXgð©¹È¢Å!> -I<*µµ*> +I<あーーーーー!!!! +テストは嫌! +何をおいてもテストは嫌! +ぶっても、むち打っても、デトロイトに送ってもいいけど、テストを書かせないで!> =begin original @@ -29,7 +32,7 @@ =end original -I<*µµ*> +I<*しくしく*> =begin original @@ -37,7 +40,7 @@ =end original -I<¨Ü¯ÉA»ñÈõÜíµ¢àÌÌ«ûÈÇmèܹñB> +I<おまけに、そんな忌まわしいものの書き方など知りません。> =begin original @@ -47,9 +50,9 @@ =end original - ȽͱñÈlÅ·©H -eXgð±ÆÍA¿å¤ÇAhL gð«AwÌÜðø«²±ÆÅ·©H -eXgðJ«AÇÝA +あなたはこんな人ですか? +テストを書くことは、ちょうど、ドキュメントを書き、指の爪を引き抜くことですか? +テストを開き、読み、 =begin original @@ -57,7 +60,7 @@ =end original - ######## ¢Â©ÌpðnßÜ·B + ######## いくつかの黒魔術を始めます。 =begin original @@ -65,7 +68,7 @@ =end original -eXgÍऽ³ñ¾Æ»fµÜ·©H +テストはもうたくさんだと判断しますか? =begin original @@ -74,12 +77,14 @@ =end original -¢¢Åµå¤BSÄÍsÁĵܢܵ½B Ƚ̽ßÉApð·×Äs¢Üµ½ -±±É»Ìd|¯ª èÜ·c +いいでしょう。 +全ては行ってしまいました。 +あなたのために、黒魔術をすべて行いました。 +ここにその仕掛けがあります… =head2 Nuts and bolts of testing. -(eXgÌî{) +(テストの基本) =begin original @@ -87,7 +92,7 @@ =end original -Åàî{IÈeXgÌvOB +最も基本的なテストのプログラム。 #!/usr/bin/perl -w @@ -101,7 +106,7 @@ =end original -1 + 1 Í 2Å·©çAÌæ¤É\¦µÜ·: +1 + 1 は 2ですから、次のように表示します: 1..1 ok 1 @@ -116,9 +121,12 @@ =end original -±ÌR[hÌÓ¡F C<1..1>[1]uêÂÌeXgðs¢Ü·BvC<ok 1>uÅÌeXgÍpXµÜµ½vB -»µÄA±êªAeXgÌ@ÌÙÆñÇSÅ·Bî{IÈjbgÌeXgÍI<ok>Å·B -B<Test::Harness>ÍAeXgÌÊððßµA¬÷µ½©¸sµ½©ð»fµÜ·(ãÅÍAàÁÆ»fµÜ·)B +このコードの意味: C<1..1>[1]「一つのテストを行います。」C<ok 1> +「最初のテストはパスしました」。 +そして、これが、テストの魔法のほとんど全部です。 +基本的なユニットのテストは I<ok> です。 +B<Test::Harness> は、テストの結果を解釈し、成功したか失敗したかを判断します +(後では、もっと判断します)。 =begin original @@ -127,8 +135,9 @@ =end original -±êçÌR[hðSÌÍA·®ÉO«ÄµÜ¢Ü·B -Å·ªAK^ȱÆÉAB<Test::Simple>ª èÜ·B±êÉÍAC<ok()>Æ¢¤êÂÌÖª èÜ·B +これらのコードを全部書くのは、すぐに飽きてしまいます。 +ですが、幸運なことに、B<Test::Simple> があります。 +これには、C<ok()> という一つの関数があります。 #!/usr/bin/perl -w @@ -145,9 +154,11 @@ =end original -±êÍãÌR[hƯ¶±ÆðµÜ·B -C<ok()>ÍAPerlÌeXgÌSÅ·B±±©çÍA©ªÅãíèÉAC<ok()>ðg¢Ü·B -C<ok()> ª^ðÔ¹ÎAeXgÍiÅ·BUÅ êÎA¸sÅ·. +これは上のコードと同じことをします。 +C<ok()> は、Perl のテストの中心です。 +ここからは、自分で書く代わりに、C<ok()> を使います。 +C<ok()> が真を返せば、テストは合格です。 +偽であれば、失敗です. #!/usr/bin/perl -w @@ -161,7 +172,7 @@ =end original -±ÌR[h©çA +このコードから、 1..2 ok 1 @@ -179,11 +190,12 @@ =end original -C<1..2> uñÂÌeXgðs¢Ü·v -±ÌÔÍAeXgvOªÅ©çÅãÜÅÀs³ê½±ÆðÛصA -ñ¾èA¢Â©ÌeXgðXLbvµ½èµÄ¢È¢±ÆàÛصܷB -C<ok 1>uÅÌeXgÍpXµÜµ½Bv C<not ok 2> uñÔÚÌeXg͸sµÜµ½vB -Test::Simple ÍeXgÉ¢ÄÌLpÈÁÊÌRgðo͵ܷB +C<1..2> 「二つのテストを行います」。 +この番号は、テストプログラムが最初から最後まで実行されたことを保証し、 +死んだり、いくつかのテストをスキップしたりしていないことも保証します。 +C<ok 1>「最初のテストはパスしました。」 +C<not ok 2> 「二番目のテストは失敗しました」。 +Test::Simple はテストについての有用な特別のコメントを出力します。 =begin original @@ -194,14 +206,17 @@ =end original -|Í èܹñæB±Á¿Ö«ÄAèðæÁÄBW [ðeXg·éáðݹܵå¤B -»ÌáÉAútÌCuÅ éAB<Date::ICal>@ðeXgµÜ·B -B<Date::ICal>ÍACPANÉ èÜ·ÌÅARs[ð_E[hµÄAiñź³¢[2]B +怖くはありませんよ。 +こっちへきて、手を取って。 +モジュールをテストする例をみせましょう。 +その例に、日付のライブラリである、B<Date::ICal> をテストします。 +B<Date::ICal> は、CPANにありますので、コピーをダウンロードして、 +進んで下さい[2]。 =head2 Where to start? -(DZ©çͶßܵå¤?) +(どこからはじめましょう?) =begin original @@ -213,11 +228,12 @@ =end original -±±ªeXgÌêÔﵢƱëÅ·.DZ©çͶßܵå¤? -W [ÌSÄðeXg·é±ÆÍA¾ç©Éå«ÈdÅ èA³|³êÜ·B -ÅàÇ¢ÌÍAÅÍ©çͶßé±ÆÅ·. -Date::ICal ÍAIuWFNgwüÌW [Å·BÅ·©çAIuWFNgðìé±Æ©çͶßê΢¢B -»¤AC<new()>ðeXgµÜµå¤B +ここがテストの一番難しいところです; どこからはじめましょう? +モジュールの全てをテストすることは、明らかに大きな仕事であり、圧倒されます。 +最も良いのは、最初はからはじめることです。 +Date::ICal は、オブジェクト指向のモジュールです。 +ですから、オブジェクトを作ることからはじめればいい。 +そう、C<new()> をテストしましょう。 #!/usr/bin/perl -w @@ -235,7 +251,7 @@ =end original -±êðÀs·éÆAȺÌæ¤ÉÈèÜ·: +これを実行すると、以下のようになります: 1..2 ok 1 @@ -247,11 +263,11 @@ =end original -¨ßÅƤAÅÌLvÈeXgª¯Üµ½B +おめでとう、最初の有益なテストが書けました。 =head2 Names -(¼O) +(名前) =begin original @@ -260,9 +276,9 @@ =end original -±ÌoÍÍASRLqI¶áȢŷË? -2µ©eXgª³¢ÈçA»Ì¤¿Ìêª2ÔÚÌà̾ƪ©èÜ·ªA -102àeXgª Á½çAǤŵå¤H +この出力は、全然記述的じゃないですね? +2つしかテストが無いなら、そのうちの一つが 2 番目のものだと分かりますが、 +102 もテストがあったら、どうでしょう? =begin original @@ -271,7 +287,8 @@ =end original -»ê¼êÌeXgÉÍA¿åÁƵ½LqIȼOðñÔÚÌøƵÄAC<ok()>É^¦é±ÆªoÜ·B +それぞれのテストには、ちょっとした記述的な名前を 2 番目の引数として、 +C<ok()> に与えることが出来ます。 use Test::Simple tests => 2; @@ -284,7 +301,7 @@ =end original -¡xÍÌæ¤ÉÈèÜ·... +今度は次のようになります... 1..2 ok 1 - new() returned something @@ -293,7 +310,7 @@ =head2 Test the manual -(}j AÌeXg) +(マニュアルのテスト) =begin original @@ -303,8 +320,10 @@ =end original -àÁÆàÈPÉ«¿ñƵ½eXgðìéû@ÍA½¾}j AÉ©êÄ¢é±ÆðeXgµÜ·[3]B -L<Date::ICal/SYNOPSIS>©ç½©ðø¢Ä«ÄA»êðSÄeXgµÜµå¤B¿åÁƵ½±ÆÅ·B +もっとも簡単にきちんとしたテストを作る方法は、ただマニュアルに +書かれていることをテストします[3]。 +L<Date::ICal/SYNOPSIS> から何かを引いてきて、それを全てテストしましょう。 +ちょっとしたことです。 #!/usr/bin/perl -w @@ -331,7 +350,7 @@ =end original -Às·éÆAÌæ¤ÉÈèÜ·: +実行すると、次のようになります: 1..8 ok 1 - new() returned something @@ -354,9 +373,14 @@ =end original -¨§[A¸s![4] Test::SimpleÍAðɧ±ÆÉA½sÚŸsµ½Ì©ðmç¹ÄêÜ·B -¯êÇA¼Éͽàmç¹Ü¹ñB17ð¾È¯êÎÈçÈ©Á½ÌÅ·ªA»¤ÍÈèܹñŵ½B½ð¾½Ìŵ天?? -í©èܹñB»êð©Â¯éÉÍAfobK[ÅeXgðÄÀsµÈ¯êÎÈ碩Aprint¶É°È¯êÎÈèܹñB +おぉー、失敗![4] Test::Simpleは、役に立つことに、何行目で失敗したのかを +知らせてくれます。 +けれど、他には何も知らせません。 +17 を得なければならなかったのですが、そうはなりませんでした。 +何を得たのでしょうか?? +わかりません。 +それを見つけるには、デバッガーでテストを再実行しなければならいか、print 文に +投げなければなりません。 =begin original @@ -368,11 +392,11 @@ =end original -»ÌãíèÉAB<Test::Simple>©çAB<Test::More>ɫ試ܵå¤B -B<Test::More> ÍA C<Test::Simple>Ìs¤SÄ̱Æðs¦éµAàÁÆs¦Ü·! -ÀÛATest::MoreÍATest::Simpleªs¤û@ðI<³mÉ>s¢Ü·B -¶ÊèATest::SimpleðæèOµATest::Moreð»±Éu±ÆªoÜ·B -¿å¤ÇAâë¤ÆµÄ¢é±ÆÅ·B +その代わりに、B<Test::Simple>から、B<Test::More>にきりかえましょう。 +B<Test::More> は、C<Test::Simple>の行う全てのことを行えるし、もっと行えます! +実際、Test::More は、Test::Simple が行う方法を I<正確に> 行います。 +文字通り、Test::Simple を取り外し、Test::More をそこに置くことが出来ます。 +ちょうど、やろうとしていることです。 =begin original @@ -385,11 +409,12 @@ =end original -Test::More ÍATest::SimpleæèA«Ü·B -ÅàdvÈá¢ÍATest::MoreÍæèLvÉuokvƾ¤_Å·B -êÊIÈC<ok()>ÅÙÆñÇ·×ÄÌeXgð±ÆªoÜ·ªAC<ok()>ÅÍA½ªÔáÁÄ¢éÌ©í©èܹñB -ãíèÉAC<is()>Öðg¢Üµå¤BC<is()>ÍA - éà̪¼ÌàÌƯ¶Å éÆvíêéƽ¿Éé¾³¹Ü·: +Test::More は、Test::Simple より、働きます。 +最も重要な違いは、Test::More はより有益に「ok」と言う点です。 +一般的な C<ok()> でほとんどすべてのテストを書くことが出来ますが、 +C<ok()> では、何が間違っているのかわかりません。 +代わりに、C<is()> 関数を使いましょう。 +C<is()> は、あるものが他のものと同じであると思われると私たちに宣言させます: #!/usr/bin/perl -w @@ -417,8 +442,9 @@ =end original -"Is C<$ical-E<gt>sec> 47?" "Is C<$ical-E<gt>min> 12?" ãíèÉAC<is()>ðg¤±ÆÅA -¢Â©Aæè½Ìîñð¾é±ÆªÅ«Ü·B +"Is C<$ical-E<gt>sec> 47?" +"Is C<$ical-E<gt>min> 12?" +代わりに、C<is()> を使うことで、いくつか、より多くの情報を得ることができます。 1..8 ok 1 - new() returned something @@ -442,9 +468,11 @@ =end original -C<$ical-E<gt>day>ÍA16ðԵܵ½ªAúҵĢ½ÌÍA17Å Á½Æmç¹Ü·B -f¢`FbNÉæèA±ÌR[hª¤Ü®©AeXgð«ã°½Æ«É~X𵽩ð¦µÜ·B -»±ðϦ龯ŷF +C<$ical-E<gt>day>は、16 を返しましたが、期待していたのは、17 であったと +知らせます。 +素早いチェックにより、このコードがうまく動くか、テストを書き上げたときに +ミスをしたかを示します。 +そこを変えるだけです: is( $ical->day, 16, ' day()' ); @@ -454,7 +482,7 @@ =end original -±êÅAS®«Ü·B +これで、全部動きます。 =begin original @@ -464,16 +492,18 @@ =end original -u±êÍA êÅ évƾÁ½íÞÌeXgð·éÆ«Í¢ÂàAC<is>ðg¤Æ¢¢Å·B -C<is>ÍAzñÅà«Ü·B½¾AeXgÍAÂËÉAXJ[ReLXgÅ®ÌÅA -Ìû@ÅAXgÌÌvfª¢Â é©ðeXgÅ«Ü·[5]B +「これは、あれである」と言った種類のテストをするときはいつも、C<is> を +使うといいです。 +C<is> は、配列でも働きます。 +ただ、テストは、つねに、スカラコンテキストで動くので、 +次の方法で、リストの中の要素がいくつあるかをテストできます[5]。 is( @foo, 5, 'foo has 5 elements' ); =head2 Sometimes the tests are wrong -(eXgÍÔáÁÄ¢éà é) +(テストは間違っている時もある) =begin original @@ -483,9 +513,12 @@ =end original -Ôá¢ÍAÆÄàåØÈbXÉÈèÜ·BR[hÉÍoOª éBeXgÍR[hÅ éB -ä¦ÉAeXgÉÍoOª éB¸sµ½eXgÍAR[hÉoOª é±ÆðÓ¡µÜ·B -µ©µAeXgªÔáÁÄ¢éÂ\«ðrµÄÍÈèܹñB +間違いは、とても大切なレッスンになります。 +コードにはバグがある。 +テストはコードである。 +ゆえに、テストにはバグがある。 +失敗したテストは、コードにバグがあることを意味します。 +しかし、テストが間違っている可能性を排除してはなりません。 =begin original @@ -496,14 +529,14 @@ =end original -½ÊAú®ÉA½¾AoOð©Â¯éÌÉêJµÄ¢é©çÆ¢ÁÄA -eXgªs³mÅ éÆf¾µæ¤Æ¢¤UfÉ©çêÈ¢æ¤ÉB -eXgð³øÉ·é±ÆÍAq¬ÉÆêéàÌÅÍ èܹñµAd©ç¦êÄAð¯é½ßÉA -eXgð³øɵÄÍ¢¯Ü¹ñB +反面、時期尚早に、ただ、バグを見つけるのに苦労しているからといって、 +テストが不正確であると断言しようという誘惑にかられないように。 +テストを無効にすることは、敏速にとれるものではありませんし、仕事から逃れて、 +避けるために、テストを無効にしてはいけません。 =head2 Testing lots of values -(½³ñÌlÌeXg) +(たくさんの値のテスト) =begin original @@ -515,10 +548,14 @@ =end original -½ÌáÁ½GbWP[XÅR[hðeXgµæ¤Æ·éÆ«A½ÌlðeXgµ½¢Æv¢Ü·B -1970NÈOÅÍA®¾ë¤©H2038NÌãÍH1904NÈOÍH10,000NãÉAguªN«é©H -[Nð³µ¾çêé©H -ãÌR[hðJèÔµ±¯é©A[vðÝé©ðAúÒ·é±ÆªoÜ·B +多くの違ったエッジケースでコードをテストしようとするとき、多くの値を +テストしたいと思います。 +1970 年以前では、動くだろうか? +2038 年の後は? +1904年以前は? +10,000年後に、トラブルが起きるか? +閏年を正しく得られるか? +上のコードを繰り返し続けるか、ループを試みるかを、期待することが出来ます。 use Test::More tests => 32; use Date::ICal; @@ -562,12 +599,13 @@ =end original -±êÅA½¾AC<%ICal_Dates>ÉútÌ©ðÁ¦é¾¯ÅAeXgÅ«Ü·B -³ÄA½³ñÌútðeXg·é̪ȢdÉÈèܵ½ªA -l¦éæ¤ÉA½¾Aútð°é¾¯Éµ½¢©àµêܹñB -BêÌâèÍAñAC<use Test::More tests =E<gt> ##> ÌsðA²ßµÈ¯êÎÈçȢŷB -±Ì±ÆÍA}¬ÉÏGÉÈéŵå¤B -2ÂÌû@ÅAàÁƤÜâêÜ·B +これで、ただ、C<%ICal_Dates> に日付の束を加えるだけで、テストできます。 +さて、たくさんの日付をテストするのが少ない仕事になりましたが、 +考えるように、ただ、日付を投げるだけにしたいかもしれません。 +唯一の問題は、毎回、C<use Test::More tests =E<gt> ##> の行を、 +調節しなければならない事です。 +このことは、急速に煩雑になるでしょう。 +2つの方法で、もっとうまくやれます。 =begin original @@ -576,7 +614,7 @@ =end original -2ÂÌû@ÅAàÁƤÜâêÜ·B +一つめの方法は、C<plan()> 関数を動的に使って、計画を計算します。 use Test::More; use Date::ICal; @@ -597,8 +635,9 @@ =end original -àµÍAæèAtLVuÉAC<no_plan> ðg¢Ü·B±êÉæèA -¢Â©ÌeXgð½¾ç¹Ü·B¢ÂÈÌ©Ímèܹñ[6]B +もしくは、より、フレキシブルに、C<no_plan> を使います。これにより、 +いくつかのテストをただ走らせます。 +いくつなのかは知りません[6]。 use Test::More 'no_plan'; # instead of tests => 32 @@ -609,11 +648,12 @@ =end original -±êÅA½¾PÉeXgðÁ¦é¾¯ÅASÄÌeXgª¢Â© 驦ÈÄàA¢ÂÅàAeXgÅ«Ü·B +これで、ただ単にテストを加えるだけで、全てのテストがいくつかあるか +数えなくても、いくつでも、テストできます。 =head2 Informative names -(LvȼO) +(有益な名前) =begin original @@ -621,7 +661,7 @@ =end original -ÌsðÝľ³¢ +次の行をみてください ok( defined $ical, "new(ical => '$ical_str')" ); @@ -632,8 +672,9 @@ =end original -eXgµÄ¢é±ÆÆAeXgµÄ¢é ICal XgO©gÌÚ×ðA¼OÉÁ¦Ü·B -Ìæ¤ÈʪoÜ·F +テストしていることと、テストしている ICal ストリング自身の詳細を、名前に +加えます。 +次のような結果が出ます: ok 25 - new(ical => '19971024T120000') ok 26 - and it's the right class @@ -652,8 +693,9 @@ =end original -¸sÌɽ© éÈçA»êªêÂÅ èA»êÉæÁÄAâèðÇÕ·é̪ÈPÉÈé±Æªí©éŵå¤B -Å·©çA¿åÁƵ½fobOîñðeXg̼OÉüêÄÝĺ³¢B +失敗の中に何かあるなら、それが一つであり、それによって、問題を追跡するのが +簡単になることがわかるでしょう。 +ですから、ちょっとしたデバッグ情報をテストの名前に入れてみて下さい。 =begin original @@ -662,12 +704,13 @@ =end original -»ÌeXgª½ðeXg·é©ðLqµÄ¨¯ÎA -¸sµ½eXgðfobO·éÛA©ªâ¼ÌlªeXgðÀs·é̪AÈPÉÈèÜ·B +そのテストが何をテストするかを記述しておけば、 +失敗したテストをデバッグする際、自分や他の人がテストを実行するのが、簡単に +なります。 =head2 Skipping tests -(eXgðXLbv·é) +(テストをスキップする) =begin original @@ -676,7 +719,8 @@ =end original -Date::ICal ÅpÓ³êÄ¢éeXgðTµñÁÄAF<t/01sanity.t>ÉAÌàÌð©Â¯Üµ½[7]B +Date::ICal で用意されているテストを探し回って、F<t/01sanity.t> に、次のものを +見つけました [7]。 #!/usr/bin/perl -w @@ -710,11 +754,12 @@ =end original -½¢Ä¢ÌñUNIX OS ÅÍAG|bNÌnÜèªÙÈÁĢܷ[8]B -ÙÆñÇ̪ÅPerlÍA·ÙðÈçµÄ¢Ü·ªA éªÅÍAáÁ½æ¤És¢Ü·B -¡A³mÉÍv¢o¹Ü¹ñªAMacPerlÍ»Ìê¾Æv¢Ü·[9]B -ÈÌÅA½¾eXgÉRg𨾯ÅÍÈA -ÍÁ«èÆAµÄ©È¢æ¤É¾¢AeXgðXLbv·é±ÆªoÜ·B +たいていの非 UNIX OS では、エポックの始まりが異なっています [8]。 +ほとんどの部分で Perl は、差異をならしていますが、ある部分では、違ったように +行います。 +今、正確には思い出せませんが、MacPerl はその一つだと思います[9]。 +なので、ただテストにコメントをおくだけではなく、はっきりと、決して +働かないように言い、テストをスキップすることが出来ます。 use Test::More tests => 7; use Date::ICal; @@ -750,11 +795,13 @@ =end original -±±ÅA¿åÁƵ½@ªN«Ü·B -MacOSÈOÅ®¢½ê,SÄÌeXgÍÊÉeXg³êÜ·B -µ©µAMacOSãÌêAC<skip()>ÉæÁÄASKIPubNÌÌSÄÌàeªòγêÜ·B -µÄ®±ÆÍ èܹñB -©íèÉAeXgªXLbv³êÄ¢é±ÆðTest::Harness É`¦éÁÊÈoͪvg³êÜ·B +ここで、ちょっとした魔法が起きます。 +MacOS 以外で動いた場合、全てのテストは普通にテストされます。 +しかし、MacOS 上の場合、C<skip()> によって、SKIP ブロックの中の全ての内容が +飛ばされます。 +決して動くことはありません。 +かわりに、テストがスキップされていることを Test::Harness に伝える特別な +出力がプリントされます。 1..7 ok 1 - Epoch time of 0 @@ -775,10 +822,12 @@ =end original -±êÍAMacOSãÅ,eXg͸sµÈ¢Æ¢¤Ó¡Å·B -±êÅAMacPerlÌ[U[©çÌA®©È¢Æª©ÁÄ¢éeXgª®©È¢Æñ·éemailªÈÈèÜ·B -eXgÌXLbvÉ¢ÄTdÉÈéæ¤ÉBXLbvÌeXgÍA®©È¢AI<µÄ®©È¢>eXgÉ뵀 éàÌÅ·B -{¨ÌoOðXLbv·é×ÌàÌÅÍ èܹñ(·®É»¤Èéŵå¤)B +これは、MacOS 上で、テストは失敗しないという意味です。 +これで、MacPerl のユーザーからの、動かないと分かっているテストが動かないと +報告する email が少なくなります。 +テストのスキップについて慎重になるように。スキップのテストは、動かない、 +I<決して動かない> テストに対してあるものです。 +本物のバグをスキップする為のものではありません(すぐにそうなるでしょう)。 =begin original @@ -786,7 +835,8 @@ =end original -±ÌeXgÍAÜÁ½A®SÉXLbv³êÜ·[10]BȺÌR[hÍA®«Ü·B +このテストは、まったく、完全にスキップされます [10]。 +以下のコードは、動きます。 SKIP: { skip("I don't wanna die!"); @@ -796,7 +846,7 @@ =head2 Todo tests -(ToDo eXg) +(ToDo テスト) =begin original @@ -804,7 +854,7 @@ =end original -Date::ICalÌmany[Wð´ÁÆÚðʵĢÄAÌàÌÉöµÜµ½: +Date::ICal の man ページをざっと目を通していて、次のものに遭遇しました: ical @@ -817,8 +867,8 @@ =end original - IuWFNgÌútÌæ¾AܽÍAZbgB - ·×ÄÌÃÈ ICal date/time ¶ñðgÁÄAIuWFNgÉútðZbg·éB + オブジェクトの日付の取得、または、セット。 + すべての妥当な ICal date/time 文字列を使って、オブジェクトに日付をセットする。 =begin original @@ -827,8 +877,10 @@ =end original -uæ¾Ü½ÍZbgvBÓÞADate::ICalÌeXgÅAútðZbg·éC<ical()> ðg¤eXgð©Ü¹ñŵ½B -ÍAÌæ¤Éŵå¤B +「取得またはセット」。 +ふむ、Date::ICal のテストで、日付をセットする C<ical()> を使うテストを +見ませんでした。 +私は、次のように書くでしょう。 use Test::More tests => 1; use Date::ICal; @@ -843,7 +895,7 @@ =end original -±êðÀs·éÆA +これを実行すると、 1..1 not ok 1 - Setting via ical() @@ -861,9 +913,11 @@ =end original -¨§[! Às³êȢ椾B³ÄA±êðC³·éԪȢÆzèµÜµå¤B[11] -Ó¤ÍA±ÌeXgðRgɵÄAToDoXgÉ«¯ßĨŵå¤B -»ÌãíèÉAC<TODO>ubNàÅbsOµÄiïñÅjAu±ÌeXgª¸sµ½vÆ¢¤¾ç©ÈóÔɵܵå¤B +おぉー! +実行されないようだ。さて、これを修正する時間がないと想定しましょう。[11] +ふつうは、このテストをコメントにして、ToDo リストに書き留めておくでしょう。 +その代わりに、C<TODO>ブロック内でラッピングして(包んで)、「このテストが +失敗した」という明らかな状態にしましょう。 use Test::More tests => 1; @@ -882,7 +936,7 @@ =end original -Às·éÆA¿åÁƵ½á¢ª èÜ·F +実行すると、ちょっとした違いがあります: 1..1 not ok 1 - Setting via ical() # TODO ical($ical) not yet implemented @@ -898,10 +952,10 @@ =end original -Test::MoreÍAuêÂÌeXgÌÌꪸsµ½æ¤¾vÆ;¢Ü¹ñB -±Ìu# TODOvÍATest::Harness Éu±êÍA¸s·éÆvíêévÆ`¦A -Test::HarnessÍA¸sµ½eXgð¬÷µ½eXgÌæ¤Éµ¢Ü·B±êÅA -oOðC³·éOÉeXgð±ÆªÅ«Ü·B +Test::Moreは、「一つのテストの中の一つが失敗したようだ」とは言いません。 +この「# TODO」は、Test::Harness に「これは、失敗すると思われる」と伝え、 +Test::Harness は、失敗したテストを成功したテストのように扱います。 +これで、バグを修正する前にテストを書くことができます。 =begin original @@ -911,12 +965,14 @@ =end original -àµATODOeXgªpX·éÆATest::Harness ÍAeXgªAuv¢ª¯¸¬÷µ½vÆñµÜ·B -±êªN«êÎAC<local $TODO>ÅTODOubNðOµÄA{ÌeXgÉϦêÎǢŵå¤B +もし、TODO テストがパスすると、Test::Harness は、テストが、「思いがけず +成功した」と報告します。 +これが起きれば、C<local $TODO> で TODO ブロックを外して、本当のテストに +変えれば良いでしょう。 =head2 Testing with taint mode. -(õ[hÅÌeXg) +(汚染モードでのテスト) =begin original @@ -929,10 +985,13 @@ =end original -õ[hÍyµ¢àÌÅ·BSÄÌSÌIÈÁ¥ÌÈ©ÅàAàÁÆàSÌIÈàÌÅ·B -õ[hðt¯éÆAõ[hÍAvOÌSÄÌR[hÆI<SÄÌ>W [(ÆA»êçªgÁÄ¢éI<SÄÌ>W [)Ée¿µÜ·B -R[hÌêÂÅàAõ³êÄ¢êÎASĪµÜ·B -±Ì±ÆðOªÉu¢ÄAõ[h̺ÅAW [ª®ÌðÛØ·é±ÆÍAÆÄàdvÅ·B +汚染モードは楽しいものです。 +全ての全体的な特徴のなかでも、もっとも全体的なものです。 +汚染モードを付けると、汚染モードは、プログラムの全てのコードと +I<全ての> モジュール(と、それらが使っているI<全ての>モジュール)に影響します。 +コードの一つでも、汚染されていれば、全てが爆発します。 +このことを念頭に置いて、汚染モードの下で、モジュールが動くのを保証することは、 +とても重要です。 =begin original @@ -942,8 +1001,9 @@ =end original -eXgðAõ[hÅç¹éÌÍAÆÄàÈPÅ·B -#!sÉAC<-T>ð°é¾¯Å·BTest::Harness ÍAC<#!> sÌXCb`ðÇÝAeXgÅ»ÌXCb`ðg¢Ü·B +テストを、汚染モードで走らせるのは、とても簡単です。 +C<#!> 行に、C<-T> を投げるだけです。 +Test::Harness は、C<#!> 行のスイッチを読み、テストでそのスイッチを使います。 #!/usr/bin/perl -Tw @@ -956,11 +1016,11 @@ =end original -ÅAC<make test>ð·éÆAeXgÍõ[hÆxðLøɵÄéŵå¤B +で、C<make test> をすると、テストは汚染モードと警告を有効にして走るでしょう。 =head1 FOOTNOTES -(r) +(脚注) =over 4 @@ -973,7 +1033,8 @@ =end original -ÅÌÍÀÛ½àÓ¡µÄ¢Ü¹ñªA1Åȯê΢¯Ü¹ñBdvÈÌÍAñÔÚÌÅ·B +最初の数字は実際何も意味していませんが、1 でなければいけません。 +重要なのは、二番目の数字です。 =item 2 @@ -984,8 +1045,9 @@ =end original -ȺÉiÞ½ßAo[W1.31ðg¢Ü·B±Ìo[WÉÍAoOªX èÜ·ªA -åävÅ· -- eXgÅoOð¾ç©ÉµÜµå¤B +以下に進むため、バージョン1.31を使います。 +このバージョンには、バグが少々ありますが、 +大丈夫です -- テストでバグを明らかにしましょう。 =item 3 @@ -996,8 +1058,8 @@ =end original -ÀÛÉA±ÌXebvðàÁÆæèüêA}j A©gðeXgÅ«Ü·B -B<Test::Inline>ð©È³¢B (ÈOÌ B<Pod::Tests>) +実際に、このステップをもっと取り入れ、マニュアル自身をテストできます。 +B<Test::Inline>を見なさい。 (以前の B<Pod::Tests>) =item 4 @@ -1007,8 +1069,9 @@ =end original -±ÌeXgÉÍAÔᢪ èÜ·B -½! ªAdgñ¾ÁÄH +このテストには、間違いがあります。 +何! +私が、仕組んだって? =item 5 @@ -1018,7 +1081,7 @@ =end original -ãÅAXgÌàeðeXgµÜ·B +後で、リストの内容をテストします。 =item 6 @@ -1032,10 +1095,12 @@ =end original -µ©µAeXgvOªrÅñ¾çA½ªN«é̾뤩?! -Çêç¢ÌeXg𮩵ĢéÌ©©È¢ÅAǤâÁĸsµ½Ì©í©é¾ë¤©? -âè èܹñBTest::MoreÍA¢Â©Ì@ðg¢A»Ìðßç¦A -eXgð¸sÉϦܷB½Æ¦ASÄÌeXgªA»ÌêÅiµ½ÆµÄàB +しかし、テストプログラムが途中で死んだら、何が起きるのだろうか?! +どれくらいのテストを動かしているのか書かないで、どうやって +失敗したのかわかるだろうか? +問題ありません。 +Test::More は、いくつかの魔法を使い、その死を捕らえ、テストを失敗に変えます。 +たとえ、全てのテストが、その場所で合格したとしても。 =item 7 @@ -1045,7 +1110,7 @@ =end original -¿åÁƾ¯ãYíɵܵ½B +ちょっとだけ綺麗にしました。 =item 8 @@ -1057,8 +1122,9 @@ =end original -½¢Ä¢ÌOSÍA éút©çÌbƵÄÔðL^µÜ·B -±ÌútªAG|bNÌnÜèÅ·BUNIXÌG|bNÌnÜèÍAWÌ1970NÌ11úÌ[éÅ·B +たいていの OS は、ある日付からの秒数として時間を記録します。 +この日付が、エポックの始まりです。 +UNIX のエポックの始まりは、標準時の 1970 年の 1 月 1 日の深夜です。 =item 9 @@ -1070,8 +1136,10 @@ =end original -MacOSÌG|bNÍA1904NÌ11úÌ[éÅ·BVMSÌG|bNÍA1858NÌ1117úÌ[éÅ·B -Å·ªAvmsperlÍAUNIXÌG|bNðG~ [gµÄ¢éÌÅAâèÍ èܹñB +MacOS のエポックは、1904 年の 1 月 1 日の深夜です。 +VMS のエポックは、1858 年の11 月 17 日の深夜です。 +ですが、vmsperl は、UNIX のエポックをエミュレートしているので、問題は +ありません。 =item 10 @@ -1082,8 +1150,9 @@ =end original -SKIPubNÌÉR[hªÝéÀèAÈÆàRpC³êÜ·BǤâÁÄé©Í·©È¢Åº³¢B -tB^[ÅÍ èܹñB +SKIP ブロックの中にコードが在る限り、少なくともコンパイルされます。 +どうやってるかは聞かないで下さい。 +フィルターではありません。 =item 11 @@ -1094,7 +1163,8 @@ =end original -ÈPÈoOð¼·Ìðð¯é½ßÌû@ƵÄATODOeXgðg¨¤ÆµÄÍ¢¯Ü¹ñ! +簡単なバグを直すのを避けるための方法として、TODO テストを +使おうとしてはいけません! =back