hachiojipmに行ってきたのですが#4でも#5でもTestを書くのが難しいという声が聞こえたので「テストは書いてみると簡単」「テストがあると開発が楽」という事を伝えてみようと努力する試みです。 ということでサンプルコードを書いてみました。 https://github.com/okamuuu/Sample-Plack-Test 紹介するサンプルコードについて ここで紹介しているスクリプトはある男がBlogを作ろうと思ったがどうせたいしたことしないので俺俺WaFをつくってやろうとして実際にやったテスト駆動開発です。 おもむろにt/web.tとかつくってみる 最初にテストを書いてみましょう。 #!/usr/bin/env perl use strict; use warnings; use Test::Most; use Plack::Test; use HTTP::Request::C
0. 前提 0.1 はじめに 以前、Perl のテストについてという記事を書きました。2008年の記事なのですが、現在もそこそこのアクセスがあるようです。 ただ、Test::More がアップグレードされて新しい書き方ができるようになったり、そもそも僕自身のプログラムの書き方が少しずつ変わってきているので、いつまでも古い記事を見てもらうのもどうかな、と思い、2011年バージョンをつくってみました。(ちょっとしか改定してませんが。。。)DB まわりのテストに関しては、また次回。 0.2 対象 Perl は書けるが、Perl のテストコードを書いたことが無い人。 0.3 動作確認環境 % uname -a FreeBSD over.tsucchi.mydns.jp 8.2-RELEASE FreeBSD 8.2-RELEASE #1: Sun Feb 27 23:51:01 JST 2011
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
計画的に実行するのはよいことですが 前回も紹介したように、Test Anything Protocolでは「これから10個のテストを実行します」と宣言する場合はこのように書くことになっていました。 use strict; print "1..10\n"; # 宣言部 for (1..10) { print "ok $_\n"; } このような宣言部の存在は、テスト結果をパースして分析するTest::Harnessのようなツールにとっては非常に便利なものですが、たとえば環境によってテストの数がかわるとき、あるいはテストファイルが非常に長くなってきたとき、はたまた多くの人が平行してファイルやテストの追加作業をしているため最後にマージするまでテストの数がわからないとき、事前にテストの数を把握していなければならないというのは、大きな制約にもなりえます。 単純そうに見えるTest Anything
サキとは彼女の自宅近く、湘南台駅前のスーパーマーケットで待ち合わせをした。彼女は自転車で後から追いつくと言い、僕は大きなコインパーキングへ車を停めた。煙草を一本吸ってからスーパーマーケットへ向かうと、ひっきりなしに主婦的な女性かおばあちゃんが入り口を出たり入ったりしていた。時刻は午後5時になる。時計から目を上げると、待たせちゃったわねと大して悪びれてない様子でサキが手ぶらでやってきた。 お礼に料理を作るとはいえ、サキの家には食材が十分足りていないらしく、こうしてスーパーマーケットに寄ることになった。サキは野菜コーナーから精肉コーナーまで、まるで優秀なカーナビに導かれるように無駄なく点検していった。欲しい食材があると、2秒間程度それらを凝視し、一度手に取ったじゃがいもやら豚肉やらを迷うことなく僕が持っているカゴに放り込んだ。最後にアルコール飲料が冷やされている棚の前へ行くと、私が飲むからとチ
Test::ContinuousでGrowlにtest完了通知させるようにしてみる - すぎゃーんメモで、testが終わるたびにGrowlで結果を教えてくれるのが便利だなーと思って、でもそれを使わない普通のproveコマンドの場合も結果を通知して欲しい!! ということで作ってみた。 GitHub - sugyan/App-Prove-Plugin-Growl: proveのGrowl通知プラグイン proveコマンドは、"App::Prove::Plugin::ほげほげ"というモジュールがあれば prove -Pほげほげと指定することでプラグインを読み込んで実行できるらしい。ので、こんな名前になります。 こんなカンジで、proveの結果がGrowlで通知されるようになります。 Log::Dispatch::DesktopNotificationを使っているのだけど、Mac以外の環境だと動か
Test Anything Protocol Perlは非常にテストを重視している言語です。連載第14回ではPerl本体のテスト数がどのように推移してきたかを、また連載第24回ではCPANモジュールの品質保証に大きな役割を果たしてきたCPANTSについて簡単に紹介しましたが、Perlとテストのつながりはそれだけではありません。CPANにはTestを名前に含むディストリビューションが500以上もあがっていますし(これは全ディストリビューション数の約2.5%にあたります)、Perlで標準的に使われているテスト形式はTest Anything Protocol (TAP)という名前を得て多くの言語に移植され、2008年からはIETFの標準化を目指した活動も始まっています――というと何やらすごいプロトコルのように聞こえるかもしれませんが、Test Anything Protocolというのは要
Perl で、あるコードが標準エラー出力に吐き出した内容をテストしたい場面がありました。 自分でまず思いついたのは STDERR を dup して保存しておいて、ファイルにリダイレクトして、元に戻して、というやりかた。これはこれで動くのですが面倒。こういう場合は Test::Output (や miyagawa さんに教えてもらった Capture::Tiny) が便利です。 Test::Output はこんな感じ。 std(out|err)_(is|isnt|like) といったテスト関数が使えるようになります。 use Test::Output; use Test::More; stderr_is { # STDERR になにか出力するコード } "STDERRの内容", "description"; stdout_like { # code } qr/regexp/, "descri
はじめまして。 最近Perlを始めたmyfinderです。 ほかの方が書いたCPANモジュールを紹介したりそれらを使ったTipsを書くCasual Trackということで、今回はテストに関連するモジュールについて書きます。 プログラムの「テスト」 テストを書くというのはデンタルフロスを使うようなもので、誰もが良いことだといいつつ、実際には軽視されがちだ。 なんて言われることもありますが、実際テストがないとプログラムの改修とか引き継ぎとかが非常に大変になりがちです。 また、CPANにアップされているモジュールの中には、モジュール本体よりもテストコードの量の方が多いものも多々あります。 なのでプログラムの質を保証したり、内容を的確に伝達するにはテストが欠かせないものであることは間違いないと思います。 早速使ってみる 例えば消費税の計算をしてくれるConsumptionTax::JPというモジュ
テストが膨大になっていくと,あるテストでは時間がかかったりして「そのテストはもう成功することがわかっとるっちゅうねん;失敗するテストだけ再テストしたいっちゅうねん」ってことになったりします。そんなときに使えるのが prove コマンドの --state オプションです。 --state オプションに failed という引数をわたすと,「テストの対象は前回 fail したテストスクリプトのみ対象」という意味になります。ステートを保存する save と併用して指定してみます。 % prove --state failed,save No saved state, selection will be empty Files=0, Tests=0, 0 wallclock secs ( 0.00 usr + 0.00 sys = 0.00 CPU) Result: NOTESTS「No save
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
モバイルファクトリーの松野です。 今回から数回にわたって、Perl におけるテスト手法についてリレー形式で詳細に解説していきたいとおもいます。 今回は初回ですので、ざっくりと概論になります。 Perlの世界におけるテストの重要性 Perlの世界においてはテスト(test)は大変重要視されています。 その特徴がよく表れているのがCPAN Testersではないでしょうか。 CPAN Testers Perlといえば何はなくともCPANなわけですが、CPANでモジュールを探していると、図1のように、「CPAN Testers」という項目があることに気付きます。 図1 CPAN Testers 世界中のPerl Mongersが、自分のマシンでテストを動かして、その結果をCPANに送っているのです。これにより、様々なOS/CPU/versionのPerlでテストがされています。貴方も気軽にCP
2008年4月2日 Frozen Perl 2008メモその3:Introduction To Testing with Perl(実例で学ぶPerlのテスト駆動開発) 資料が公開されている。テストを先に書くというテスト駆動開発。概念はわかりやすくても実際に行ってみるとなかなか難しい。この発表は簡単なモジュールを開発する場面を見せてくれるという点で実にわかりやすかった。問題の設定分譲マンションのような共同住宅を考える。この建物の延べ床面積のうち各世帯が所有する面積の割合を計算する。たとえば、延べ床面積が10000平米のマンションにある1000平米の住居なら10%。これを算出するモジュール、PercentOwnership.pmを作る。テストその1:use_okを使ってモジュールが使えるかどうかテストするモジュールPercentOwnership.pmを作らずに、いきなりテストを作る。tとい
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く