matsutakegohan1's blog

matsutakegohan1(きゅーぞう)による、釣り、狩猟、技術?、セキュリティ?、その他の話

未分類

初めてのテストケース

投稿日:

Test::Simple、アラヤダほんとにシンプル。

パッケージのコード

  1 #!/usr/local/bin/perl
  2
  3 # Class Structを使わないパターン
  4
  5 package DataContainer;
  6 use strict;
  7 use warnings;
  8 use Data::Dumper;
  9
 10 sub new {
 11     my $class = shift;
 12     return bless { _container => {} }, $class;
 13 }
 14
 15 sub set {
 16     my $self        = shift;
 17     my ($key,$val)  = @_;
 18     $self->{_container}->{$key} = $val;
 19     return 1;
 20 }
 21
 22 sub get {
 23     my $self        = shift;
 24     my $key         = shift;
 25     return $self->{_container}->{$key} if exists $self->{_container}->{$key};
 26 }
 27
 28
 29 1;

 
Test::Simpleのコード

  1 #!/usr/local/bin/perl
  2
  3 # Class Structを使わないパターン
  4
  5 use strict;
  6 use warnings;
  7 use Test::Simple tests => 9;
  8 use DataContainer;
  9
 10 my $data    = new DataContainer();
 11 my $ret1    = $data->set("aaa", "bbb");
 12 my $ret2    = $data->set("ccc", "ddd");
 13
 14 ok ( $ret1 == 1, '$data->set() #1 set string');
 15 ok ( $ret2 == 1, '$data->set() #2 set string ');
 16 ok ( $data->get("aaa") eq "bbb", '$data->get() #1 get string');
 17 ok ( $data->get("ccc") eq "ddd", '$data->get() #2 get string');
 18 ok ( $data->get("eee") eq "",    '$data->get() #3 not exists key');
 19
 20 my @array   = ( 1, 2, 3 );
 21 my %hash    = ( "111"=>"222", "333"=>"444");
 22 my $ret3    = $data->set("sage", @array);
 23 my $ret4    = $data->set("age" , %hash);
 24
 25 ok ( $ret3 == 1, '$data->set() set array ');
 26 ok ( $ret4 == 1, '$data->set() set hash ');
 27
 28 my @sage_array = $data->get("sage");
 29 my %age_hash   = $data->get("age");
 30
 31 ok ( $sage_array[1] == 2, '$data->get() get array');
 32 ok ( $age_hash{"111"} eq "222", '$data->get() get array');
 33
 34 1;

でもって結果。

1..9
ok 1 – $data->set() \#1 set string
ok 2 – $data->set() \#2 set string
ok 3 – $data->get() \#1 get string
ok 4 – $data->get() \#2 get string
ok 5 – $data->get() \#3 not exists key
ok 6 – $data->set() set array
ok 7 – $data->set() set hash
Odd number of elements in hash assignment at test3.t line 29.
Use of uninitialized value in numeric eq (==) at test3.t line 31.
not ok 8 – $data->get() get array
#   Failed test '$data->get() get array'
#   in test3.t at line 31.
Use of uninitialized value in string eq at test3.t line 32.
not ok 9 – $data->get() get array
#   Failed test '$data->get() get array'
#   in test3.t at line 32.
# Looks like you failed 2 tests of 9.

おうふぁっく。
配列やハッシュはvaluesに入れちゃ駄目なのか。
17行目でスカラーきめうちだからかな。
perlってスクリプト言語にしてはかなり型に煩いですね。
嫌いじゃないですけど。

スクリプト言語は先にテストを書きたい人なので、
順番を無視してTest::MoreやTest::Harnessの取得に走るのです。

-未分類
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

送別会

本日は勤めている会社のベンチャー時代から今を支えた二人の方の送別会でした。お二人とも直接一緒の仕事は無いけれどもそれぞれに間接的に多大な影響を受け、感謝しきり。充電後のご活躍をお祈りします。 さて、送 …

no image

カード支払いの積み立てファンド

保険料はカードで支払ったらポイントつくのです。今興味があるのは積み立てのファンドや積み立てのドル建て年金の類。これでポイントついたらおいしいなあ。まず無いと思うけど。 18 名前: 名無しさん@お金い …

no image

ままならぬ

ままならない一日。 予想できない動きの疲れが残って1ダメージ。 デスマーチ好きがデスマーチに飲み込まれる余波を食らって1ダメージ。 なにやら早速火の車のサブチームのお手伝いでひとつ仕組みを作ることに。 …

no image

接骨2

日曜日はやはり憂鬱。症状の改善は牛の歩みほどには実感。用はしんどい。 というわけでこれまた家の近くのSカイロへ。ここのカイロは変わっていて、変なガチャコンいう機械で行う。アクティベータ・メソッドという …

no image

ぼっくすはんと

キーボードを自慢できなかったことが悔やまれる。。。 KB-312 1995年製富士通の生んだ奇跡のメンブレンキーボード。 はー 関連

第一精工の高速リサイクラーはすべての釣り人の必需品だと思っています。糸の巻き替え、巻き直しにこれが在るのと無いのでは天地の差があります!

シマノの防水クッションは、すべての時期で船釣りのオトモ。一番小さいサイズで大抵大丈夫です。冷えから守ってくれたり、エンジンの振動から守ってくれたり、寝るときに枕になります。

%d人のブロガーが「いいね」をつけました。