タグ

testとperlに関するkiririmodeのブックマーク (14)

  • Client Challenge

  • Test::Mock::LWP を試す - 日向夏特殊応援部隊

    久しぶりのエントリです。一応元気にやってますよっと。 ここまでのあらすじ 同僚の id:typomaster さんから、Test::Mock::LWP を使ってテスト書きたいんだけど〜と言われたので早速軽く試してみましたよ。 Test::Mock::LWP とは 具体的には、 LWP::UserAgent HTTP::Request HTTP::Response モジュールに対して Test::MockObject 化した物だと考えて良い。それぞれ、 Test::Mock::LWP::UserAgent Test::Mock::HTTP::Request Test::Mock::HTTP::Response モジュールが対応しています。それぞれソースは短いので実際に見てみましょう。 Test::Mock::HTTP::Request package Test::Mock::HTTP::Re

    Test::Mock::LWP を試す - 日向夏特殊応援部隊
  • 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
  • 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
  • Fix Test::Builder’s Unicode issue | The Effective Perler

    The perl interpreter is getting much better with its Unicode support, but that doesn’t mean everything just works because most of the code you probably are about is in modules, which might not have kept up. Some of this becomes apparent when you give another module some Unicode strings for it to output. For instance, the latest release of Test::Builder module has a known issue with filehandle laye

  • Parallel module testing in Perl - Islands in the byte stream

    Twitterにて: たしかあったはず*1と思って探してみると*2、Test::Harness にHARNESS_OPTIONSというオプションがありました。以下のようにすると並列でテストで時間を大幅に短縮できます。 $ HARNESS_OPTIONS=j2 make test 実際、Xslateでこれを試してみるとテストの時間が2/3程度になりました*3。これはかなり効果があると考えていいでしょう。 ただし、モジュールが並列実行に対応してないケースがありえるので、すべてのケースで利用出来るわけではありません。すなわち、これはモジュールの作者が指定するのが望ましいオプションだと言えます。そして、Module::Install::TestTarget があればそれが簡単にできるのです。 # Makefile.PL # ... default_test_target env => { HARN

    Parallel module testing in Perl - Islands in the byte stream
  • Testing TCP servers with Test::TCP - Articles Advent Calendar 2010 English

    Hi, I'm tokuhirom. Test::TCP is a very useful library to testing TCP servers and/or clients. Yesterday, I released Test::TCP 1.08! And so, the version contains new OO-ish interface support. use Test::TCP; my $server = Test::TCP->new( code => sub { my $port = shift; ...; }, ); my $client = MyClient->new( host => '127.0.0.1', port => $server->port ); undef $server; # kill server process on DESTROY A

    Testing TCP servers with Test::TCP - Articles Advent Calendar 2010 English
  • Test::Fixture::DBI で覚えるデータベーステスト - Articles Advent Calendar 2010 Hacker

    さて、今年も JPerl Advent Calendar の季節がやってきましたね。こんにちわこんにちわ zigorou です。 今回は拙作 Test::Fixture::DBI でデータベースのテストをするお話をしますよ! このモジュールはモバゲーオープンプラットフォームの API 開発時に必要にかられて作り、今では DeNA の社内でも普通に使われて来ているモジュールです。 レポジトリは github です。 はじめに とりあえずはテスト用の table を用意しましょう。 USE test; DROP TABLE IF EXISTS location; CREATE TABLE location ( id int(10) unsigned not null, user_id int(10) unsigned not null, title varchar(255) not null

    Test::Fixture::DBI で覚えるデータベーステスト - Articles Advent Calendar 2010 Hacker
  • にひりずむ::しんぷる - make test で Test::mysqld を永続化させる方法

    実際にどうやってんのかなーって話をあんまりしてなかったので。 まず、こんな感じのモジュールを t/lib/Test/MyApp/mysqld.pm とかで作って M::I::TestTarget の default_test_target() で `make test` を書き換えてやり、t/script/setup_mysqld.pl に とか書いてあげます。 それぞれのテストでは、Test::MyApp::mysqld->setup で mysqld を立ち上げるようにして置けば、 prove で個別にやった時は、それぞれ立ち上がる make test したときは、最初に立ち上げて、あとは使いまわす という感じになります。 ポイントとしては、 $ENV{TEST_MYSQLD} に Test::mysqld のデータ構造をそのまま JSON にして突っ込む Test::MyApp::m

  • 第4回 Test::Perl::Critic, Test::Pod, Test::Pod::Coverage, Test::Exception, Test::Warn, Devel::Coverの紹介 | gihyo.jp

    Happy Testing Perl 第4回Test::Perl::Critic, Test::Pod, Test::Pod::Coverage, Test::Exception, Test::Warn, Devel::Coverの紹介 モバイルファクトリーの小林です。今回は今までに紹介しきれなかったPerlのTestingモジュールで良く利用されるものをいくつか紹介したいと思います。 Test::Perl::Critic このモジュールはテスト対象のコードがPBPに準拠しているかどうかをテストしてくれるモジュールです。 PBPとはDamian Conway氏の提唱するPerl Best PracticesというPerlのコードを書く際のスタイルです。 http://www.oreilly.co.jp/books/4873113008/ Perl Best Practicesについての詳細

    第4回 Test::Perl::Critic, Test::Pod, Test::Pod::Coverage, Test::Exception, Test::Warn, Devel::Coverの紹介 | gihyo.jp
  • Happy Testing Perl:第3回 Test::Declareの紹介|gihyo.jp … 技術評論社

    第3回目を担当する小林です。 今回は私が開発したPerlモジュールのTest::Declareについて紹介します。 Test::Declareの特徴 Test::Declareには、以下の特徴があります。 テストコードをDSL風に(宣言的に)書く事を重点に置いている それによりテストコード自体の見やすさを向上させることができる 宣言的にテストを書く事により、一体なにを目的としたテストなのかがわかりやすくなる Test::Declareでは、Test::More、Test::Deep、Test::Exception、Test::Warn、Test::Outputのfunctionをexportしているので、Test::Declareを1つuseするだけで、これらのモジュールのfunctionが利用可能となります。 これらのテストモジュールが提供するfunctionは通常よく使うものですので、

    Happy Testing Perl:第3回 Test::Declareの紹介|gihyo.jp … 技術評論社
  • 第2回 Test::Baseの紹介 | gihyo.jp

    モバイルファクトリーの伏原です。 私は今回Test::Baseというモジュールを紹介させてもらいます。 Test::Baseとは Test::Baseは、Kwikiなどの作者として知られるIngy döt Net氏が作成した“⁠Data Driven Testing Framework(データ駆動型テストフレームワーク)⁠”です。 データ駆動型テストとは何なのか、実際のテストを見て頂くのが一番早いと思うので、早速実際にTest::Baseを使ったテストを書いてみることにします。 今回使うサンプルプログラム NabeAtzz問題を解くプログラムを作ります。NabeAtzz問題にはいくつかのバリエーションがありますが、今回は以下の条件を満たすもの、と言うことにします。 1からnまでの整数に対して 3の倍数の時は“⁠fool⁠”と出力する 5の倍数の時は“⁠dog⁠”と出力する いずれかの桁に3

    第2回 Test::Baseの紹介 | gihyo.jp
  • 第1回 Perlにおけるテストの概要/TAPとは? | gihyo.jp

    モバイルファクトリーの松野です。 今回から数回にわたって、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

    第1回 Perlにおけるテストの概要/TAPとは? | gihyo.jp
    kiririmode
    kiririmode 2008/06/07
    Test::{Simple,More,Harness}の基本
  • Main Page - Test Anything Protocol

    TAP, the Test Anything Protocol, is a simple text-based interface between testing modules in a test harness. TAP started life as part of the test harness for Perl but now has implementations in C/C++, Python, PHP, Perl and probably others by the time you read this. Here's what a TAP test transcript looks like (using the development version): TAP version 13 1..4 ok 1 - Input file opened not ok 2 -

  • 1