document

1. h2xsを使って perlモジュールのひな型を作る

(本来の使い方と違うんだけど、t/ 以下にテストケース書いて自動テストするために使ってます。)

1.1下記のコマンドでperlモジュールのひな型を作る

h2xs -A -n TEST_NAME

TEST_NAMEのディレクトリができてその中にいくつかファイルができる。

tディレクトリにテストをperlで書いていく
ファイルはxxxx.tとしておくと、後で*.tのファイルを全部実行してテストしてくれる

1.2Makefile を生成する。

% perl Makefile.PL

1.3テストしてみる。

%make;make test

(予めt/TEST_NAME.t ができているので、そのテストが通ればOK)

参考リンク

Perlモジュールの作り方 (C言語編) http://www.rainylain.jp/vc/perl_module.htm

h2xsとmake - kotaroito: エンジニアLv3日記 http://d.hatena.ne.jp/kotaroito2002/20091107/1257578157

(貧乏な人のための)Perl モジュールの作り方。 : torus solutions! http://torus.jp/memo/x200311/PerlModule.rd.html

2.PerlのTest More 使ってテストケースを書く

LWP::UserAgent?を使ってサーバーにリクエストを送って、Test Moreのlikeとかunlikeでレスポンスが想定したものかをチェックできます。

%make;make test

を打って、全体テストか、同じディレクトリで

perl t/02_post_multipart_ok.t

と売って個別にテストできる。

  • 02_post_multipart_ok.t
	# Before `make install' is performed this script should be runnable with
	# `make test'. After `make install' it should work as `perl inuhon_module_test.t'
	
	#########################
	
	# change 'tests => 1' to 'tests => last_test_to_print';
	
	use Test::More tests => 1;
	
	#test use library
	use strict;
	use LWP::UserAgent;
	use HTTP::Request::Common;
	
	my $host = 'localhost';
	my $port = 'pppp';
	
	# POST準備
	my $currentUTC = time;
	my $url = 'http://localhost:pppp/xxxxx?zzzz=yyyy&key=' . $currentUTC . '&aaa=bbbb';
	
	print $url;
	
	my $request = POST( $url, Content_Type => 'form-data',Content => [file1 => ["img/3MB.JPG"]] );
	
	#print $request;
	
	# 送信
	my $ua = LWP::UserAgent -> new;
	my $res = $ua -> request( $request ) -> as_string;
	print $res;
	
	like($res,qr/HTTP\/1.1 200/,"result eq 200");
	
	#########################
	
	# Insert your test code below, the Test::More module is use()ed here so read
	# its man page ( perldoc Test::More ) for help writing this test script.

Test Moreで良く使う項目

use Test::More 'no_plan';

(Test::Moreはテスト回数を宣言しないといけないけど、)テストの回数を書きたくないとき。

like( $got, qr/expected/, $test_name );

正規表現使えるのが便利

他の関数はこのリンクに

Test::More - search.cpan.org http://search.cpan.org/~mschwern/Test-Simple/lib/Test/More.pm

参考リンク

Test::More - search.cpan.org http://search.cpan.org/~mschwern/Test-Simple/lib/Test/More.pm

モダンPerlの世界へようこそ:第28回 Test::More:no_planからdone_testingへ|gihyo.jp … 技術評論社 http://gihyo.jp/dev/serial/01/modern-perl/0028?page=3

Test::Moreでテスト事始め - JPerl Advent Calendar 2009 http://perl-users.jp/articles/advent-calendar/2009/casual/13.html

nDiki: require_ok してテスト可能な Perl スクリプトを書く (2011-06-08) http://www.naney.org/diki/d/2011-06-08-Perl.html

モダンPerlの世界へようこそ:第27回 Test::Most:Test::Moreでは物足りなくなってきたら|gihyo.jp … 技術評論社 http://gihyo.jp/dev/serial/01/modern-perl/0027

  • Test::Moreを読むとまずはTest-Simpleを読めと書いてあった

Test::More - search.cpan.org http://search.cpan.org/~mschwern/Test-Simple-0.98/lib/Test/More.pm

Test::Tutorial - ごく基本的なテストを書くことについてのチュートリアル 【perldoc.jp】 http://perldoc.jp/docs/modules/Test-Simple-0.47/Tutorial.pod

モダンPerlの世界へようこそ:第25回 Module::Starter:モジュールを書くためのテンプレート|gihyo.jp … 技術評論社 http://gihyo.jp/dev/serial/01/modern-perl/0025


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-11-16 (水) 11:14:01 (2769d)