タグ

testに関するxaicronのブックマーク (33)

  • Test::CallCounter だした - tokuhirom's blog

    @tokuhirom++ “@soh335: @xaicron mock::guard よく使ってるんですけど、呼ばれた回数だけカジュアルに取れるのが ( cpan に ) あるといいですね!” — さいくろん (@xaicron) April 4, 2013 use Test::CallCounter; my $counter = Test::CallCounter->new( 'LWP::UserAgent' => 'get' ); my $ua = LWP::UserAgent->new(); $ua->get('http://d.hatena.ne.jp/'); is($counter->count(), 1);去年ぐらいにかいた Test::CallCount っていうゆるふわモジュールがあったけどまだリリースしてなかったんですが、だせといわれたので full rewriteして

  • PerlでTDD(テスト駆動開発)するなら覚えておきたいCPANモジュール群 | hirobanex.net

    最近、久しぶりに新規コードを書いたんですが、そのテスト書く中でTest::Mock::Guardってモジュール使って便利だったんで、ここらで、動作確認テストを書く上でいいな(使ってみたいな)って思ったモジュール群やテスト関連ネタを個人的なメモとしてまとめておきたいと思います。 いいなって思うPerlの動作確認テスト系CPANモジュール群 私が実際に普段使っているものから、これいいなー使ってみたいなーと思うものまで、一覧にまとめて見ました。結構いろんなモジュール使わないと、いい具合にTDDってできないものだと思います。 入門編 モジュール名 概要 参考日語記事

    xaicron
    xaicron 2012/08/03
    褒められたヽ(´ー`)ノ
  • All Test::Successful - Articles Advent Calendar 2011 Test

    はじめに こんにちは、xaicron です。みんな、僕のグラビア写真は買ってくれたかな?買ってない人は WEB+DB Press vol.66 を今すぐゲットだぜ!! さて、ついに長かった Test Track も最終日がやって参りました!みなさんはどうせリア充を尻目にリナカフェの閉店を見たり、独り者同士でなんとなーく集まってお酒飲んだり、もしくは僕のように一人寂しく Advent Calendar を書いているのでしょうね!!その昔、コンビニでゆでたまご買って間違って「あ、あっためてください」っていっちゃったことを何故か思い出しました。 というわけで、クリスマスぐらいはせめてテストを書きたくないし、そもそもコケたテストとか見たくないわけですね。ですので、僕からのスペシャルなクリスマスプレゼンツ!!その名も Test::Successful だぜ!ベイベー!! これはなに? これはあれです

    All Test::Successful - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/25
    完走しました!あざす!!
  • prove についてのおさらい - Articles Advent Calendar 2011 Test

    はじめに 忘年会シーズンまっただ中で皆さんは毎日お酒を飲んでいることでしょうが、僕は友達が少ないため忘年会とか全然無いので財布はまだホットな状態なんですが、なぜ僕の妹は小鳩ちゃんじゃないんだっていうかそもそも妹いないしもう死ぬって感じの xaicron です。こんにちは。 そろそろ prove について簡単に説明しときますよっと。 prove のよく使うオプション prove にはいっぱいオプションがあるんですが、ここではよく使いそうなやつをピックアップして紹介しちゃいますよ! -v, --verbose # いっぱい出力する -l, --lib # lib を INC についかする perl -Ilib 相当 -b, --blib # blib/lib とか blib/arch を INC につかする -Mblib 相当 -c, --color # カラフルになる! MSWin32 だと

    prove についてのおさらい - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/21
    書いたよー
  • テストのためにデーモンを自動的に起動するやりかた2011年版 - Articles Advent Calendar 2011 Test

    はじまりはパクり 最近あんまりコード書いてません、lestrratです。 テストを走らせる時にいろんな他のデーモンを立ち上げたり、そのテストのためだけの設定を先にしないといけなかったりとか色々ありますよね。結構長い間Makefile.PLはModule::Installで書いていたせいもあって、ちょっと前にxaicronさんが書いてたModule::Install::TestTargetでごにょごにょやってたのですが、ちょっと前にYappo/tokuhiromさんがproveで書いてたセットアップがまるっと自分の欲しい用途にも使える事に気づいたのでいろんなアプリケーションのテストをそのように変えてみました。 流れ proveでテストをすると、proveのプラグインを呼び出す設定ができるのですが、これをプラグインというよりテスト前に実行されるフックとして利用する事によって任意の設定用のコード

    テストのためにデーモンを自動的に起動するやりかた2011年版 - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/20
    すばらしい!
  • テストのカバレッジを出す - Articles Advent Calendar 2011 Test

    はじめに 最近腰痛と肩こりで寝るのも辛い xaicron です。凝り固まった体と心を優しくときほぐしてくれる。そんな人間を皆さんには目指して欲しい。 さて、今日はテストのカバレッジを取る方法についてちょろっと書こうと思います。 カバレッジというと原理主義てきな人たちにはご褒美であり、僕らのような lazy な人間にはちょっとめんどくさいなって感じますね。 要件的議所とかにカバレッジ率 100% を目指せ!みたいなことが書いてあったりして、それが目的になっちゃったりすることもあるかと思います。 でもまぁ、カバレッジを上げることが当の目的ではないので、あくまでも目安として使うぐらいでいいでしょう。だってカバレッジ上げるとかめんd(ry カバレッジを取る perl でカバレッジを取る方法といえば Devel::Cover ですね。他にもいろいろありますが。 とりあえず、テストしたいプロジェクト

    テストのカバレッジを出す - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/15
    かいたよー
  • Test::Exception で Death テスト - Articles Advent Calendar 2011 Test

    こんにちは。ikasam_a です。 今日は、以前のテスト分類のお話とは一転して Test::Exception というモジュールを紹介します。 これを使うと、実行中に die しちゃうようなコードを気軽にテストできます。 例えば、アイコンを作りたいんだけど不正な状態だったら例外投げちゃう感じのクラスがあるとしますね。例ですよ。そんなクラスのテストもこんな感じで書けるようになります。 use Test::More; use Test::Exception; use My::Icon; lives_ok { My::Icon->new(+{ name => 'ikasam_a', state => 'cute' }); } 'icon is cute'; dies_ok { My::Icon->new(+{ name => 'nekokak', state => 'cute' }); } '

    Test::Exception で Death テスト - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/15
    エラー処理のテスト
  • Jenkinsで継続的メトリクス測定のすすめ - Articles Advent Calendar 2011 Test

    はじめに こんばんは、家で凍死しそうなので、そろそろセラムヒートでも買おうと思っているdannです Test Track 11日目です! ikasam_a さんから「Jenkinsの話を書いて!」と言われたので、ACDD(Advent Calendar Driven Development) という手法で作った、メトリクス測定ツールとJenkinsへのインテグレーションについての話をします。 メトリクスを測定すると捗るぞ 大きなチームで開発する時に、数百行の謎メソッドができたりとかあったりしますよね(涙) 僕は、Working Effectively With Legacy CodeやClean Codeを読んでいること前提にチームの人がコードを書いていると思っていたら、あれ?という場面があったりします。こういうときは、品質の問題を測定できるようにすると、数値レベルで具体的にした共通認識が

    Jenkinsで継続的メトリクス測定のすすめ - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/11
    メトリクス!
  • HTTP通信を含むモジュールのテスト - Articles Advent Calendar 2011 Test

    こんにちは!こんばんは!寒いのがめっぽう苦手、bayashi です! きょうは、HTTP通信を伴うモジュールのテストについて書いてみます! サンプルモジュール WWW::Foo8 具体的に説明するために、WWW::Foo8 というモジュールを書きました! package WWW::Foo8; use strict; use warnings; our $VERSION = '0.01'; use Class::Accessor::Lite ( rw => [qw/agent error/], ); sub new { my ($class, %args) = @_; $args{agent} = _default_agent() unless $args{agent}; bless \%args, $class; } sub get { my ($self, $uri) = @_; my

    HTTP通信を含むモジュールのテスト - Articles Advent Calendar 2011 Test
  • Test::MockTime - 時間にまつわるtest - Articles Advent Calendar 2011 Test

    はい、kawamotoです blogは書いているとはとても言えないぐらいサボっております。 右も左もわからぬひよっこですので奇をてらわずにTest::名前空間のモジュールの紹介をしようと思います。 Test::MockTime は testの最中に実行される time, localtime, gmtime などの時間に関する関数の振る舞いを書き換える便利なモジュールです。 以下のような症状によく効きます。 テストの期待する結果に時刻を入れたいが固定の値を指定できない。 外部のコンポーネントに存在する、時間で変動する要素に依存しないテストを書きたい(たとえば MySQL で時系列のパーティションを使っているなど) テストを実行するたびに経過時間が変動してtestが通ったりこけたりする 使い方はこちらの記事でも説明されていますが、 $ cat ~/test.pl use feature qw(

    Test::MockTime - 時間にまつわるtest - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/07
    時間を固定するテスト
  • PerlとOracleDatabaseでの性能試験(データ増幅) - Articles Advent Calendar 2011 Test

    はじめに はじめまして! dukkiedukkie と申します。 知人にこちらを教えて頂きまして登録させていただきましたが、予備知識なく&&不慣れでご迷惑おかけすると思いますが、よろしくお願いいたします!! IT業界を16年ほどさまよっており現在はPerlで色々書いてます。が、ゴリゴリのプログラマというわけでもなく 前職は某ポータルサイトにて広告システム全般のシステム基盤設計とシステム運用、前々職は某金融システムにてDBA(Oracle中心)、その前は某ブログシステムのDBA(Oracle中心)、さらにその前は、某IT情報配信サイトのエンジニアとして、働いてきた90年代CGIプログラミングを原点とする”オッサンPerler”です。 ですが、どんどん新しいことを学びたいので、なかよくしてくださいね!! データベースの性能試験とPerl さて、ほとんど準備もしておりませんため(次回はがんばりま

    PerlとOracleDatabaseでの性能試験(データ増幅) - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/07
    異彩を放っている!
  • Perl から Hadoop と連携したテストをしてみる - Articles Advent Calendar 2011 Test

    はじめに はじめまして。xaicron さんに誘われて advent calendar に挑戦してみることにしました yayohei です。お手柔らかにお願いします。 今日は、テストを行う際に作ったオレオレテスト Module の Test::HadoopSingleNode を紹介したいと思います。 データ増による課題 データ量の増加に伴ってくるとDatabaseからデータを取り出す処理が重すぎて処理が期待した時間に終わらないということが起きることもあると思います。 そこで処理を分割したり並列化したりして解決しようとするわけですが、最近流行の汎用的な分散処理基盤としてApache Hadoopがあります。 Apache Hadoopとは、”Apache Hadoopは大規模データの分散処理を支えるJavaソフトウェアフレームワークであり、フリーソフトウェアとして配布されている。Hadoo

    Perl から Hadoop と連携したテストをしてみる - Articles Advent Calendar 2011 Test
  • Module::Build で let's `make love` - Articles Advent Calendar 2011 Test

    Win32 の プリンスキー*1 として知る人ぞ知るところの tokuhirom です。 マリオカート7にいそがしくてアドベントカレンダーをかく暇がありません。 さて、クリスマスも近いということで、みなさんも make love したいところだと思います。 しかし、自力で Makefile をいじるのも大変です。 「愛のためにはその程度の障害はむしろご褒美だ!」という人もいるかもしれませんが、僕は昨今話題の草植、もとい草男子ですので、そんな面倒なことはできません。 ここでは、perl で簡単に `make love` をするために書いたという経緯がない Module::Build を紹介します。 Module::Build ではハックっぽいことをしなくても簡単にいろいろと hook できるんです。make love も出来るのでリア充も安心!! 使い方 たとえば、Module::Buil

    Module::Build で let's `make love` - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/04
    make love の参考になる
  • ぼくのかんがえた最強のテスト分類 - Articles Advent Calendar 2011 Test

    はじめに こんにちは!最近転職して新宿までロマンスカーにお世話になりっぱなしの ikasam_a です。 Test Track 3日目です!初日に xaicron さんから「テストの細かい話を書いて!」と言われたので、今日はちょっと趣向を変えて、テストの分類についてつらつらと書いてみたいと思います。 あまり、というかまったく Perl の話は出てこないです!さーせん! テストを分類すると捗るぞ 例えばチームでテストの話をするような時に、それぞれが考える「テスト」のイメージが違って、話が噛み合わないことがあったりしますよね。僕はよくありました。 僕は「テスト=単体テスト」の話をしているつもりが、相手は「テスト=機能テスト」だと思って話を進めていると、あれ?という場面があったりします。こういうときは、例えば設計におけるデザインパターンのように、テストをより具体的にした共通認識があると話が捗りま

    ぼくのかんがえた最強のテスト分類 - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/03
    テストの分類について / わかりやすい!
  • use Test::Attribute::AutoLevel - Articles Advent Calendar 2011 Test

    こんにちは、カワ(・∀・)イイ!!アイコンで有名なnekokakだよ。 今日はカワ(・∀・)イイ!!僕がつくったTest::Attribute::AutoLevelという イカしたモジュールを紹介してみたいと思うんだ。 僕はテストを書く時にテスト用の便利関数を定義することがよくあるんだ。 そのテスト関数の中でTest::Moreのテスト関数を実行するんだけど、 そこでテストがコケたときに表示されるエラーメッセージがおかしなことになるんだ。 例えば use strict; use warnings; use Test::More; sub test_cute_icon { my $icon = shift; is $icon->{state}, 'cute'; } { package My::Icon; sub new { my ($class, $opts) = @_; bless $op

    use Test::Attribute::AutoLevel - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/02
    Testが現実と即して正しいかどうかという問題を鋭く抉っている良記事
  • perl でテストを始めよう!! - Articles Advent Calendar 2011 Test

    はじめに こんにちはこんにちは!最近会社のモニターが二枚になって持て余している xaicron です。 さて、Test Track と称して始まったトラック。全部よめばあなたもテストを書かずには生きていけない、そんな身体に大変身していること間違いなしです。 とりあえず今日は初日なので、perl でテストを書くときに必ずと言っていいほど利用する Test::More を使ったテストの書き方を書こうと思ます。 また、「テスト」とざっくりといってもいろいろなものがありますが、その辺の細かい話はきっと ikasam_a さんが書いてくれるのでスルーします。 Test::More チートシート まず、More というだけあって、結構機能がいっぱいあるので、チートシートを先にあげておきます。perldoc Test::More のほぼコピペですが、きっと皆さんは perldoc Test::More

    perl でテストを始めよう!! - Articles Advent Calendar 2011 Test
    xaicron
    xaicron 2011/12/01
    書いたよー
  • Testing Web Application 2011秋 - tokuhirom's blog

    とにかく楽に、お気軽に。お気軽にテストを追加できて、お気軽にテストを実行できる。というのがなによりも重要です。 追加しようとおもったときに「どう追加したらいいかわからない」という状況になりがちなので、あらかじめいろいろな構成要素ごとにテストをひととおりかいてみるというのも重要だとおもいます。O/R Mapper のクラスのテストとか、model のテストとか、コントローラのテストとか、JSON API のテストとか。。 ExtUtils::MakeMaker でテストをうごかさないExtUtils::MakeMaker を素でつかうと blib/ とかつかってきてうざいので、Makefile.PL に以下のような hack をほどこしてあります。ウェブアプリケーションで blib/ とかにコピーする必要ないですよね。実運用でも blib/ でうごかさないし、インストールもしませんし。 #

  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Test::Mock::Recorder - Kato Kazuyoshi

    In xUnit Test Patterns, Gerard Meszaros introduce the term "Test Double" and he lists various kinds of double: dummy object, fake object, stub, spy, and mock. You can read the summary at Martin Folwer's Bliki. Last year I wrote own mock library for Perl. We can use Test::MockObject as (Gerard's definition of) mock. But it's hard. So my library provides "record-and-verify" style interface like Mox

  • Test::Mock::Guard Released - 日向夏特殊応援部隊

    さっき nekokak さんと xaicron さんにそそのかされて Test::Mock::Guard ってモジュールを書いてみました。 そもそも Perl には Test::MockObject と言う汎用の Mock モジュールがあるんですけど、あれこれ余計な機能がたくさんついてたり Mock 化すると多分元に戻せないと言うのがあってもっとシンプルな奴がほしいなと思って作ってみた次第です。SYSNOPSIS のコピペですけど、 use Test::More; use Test::Mock::Guard qw(mock_guard); package Some::Class; sub new { bless {} => shift } sub foo { "foo" } sub bar { 1; } package main; { ### このスコープでは Mock 化されてる my

    Test::Mock::Guard Released - 日向夏特殊応援部隊