Test::Moreを使ってみた

テストを書くためのもう一つのフレームワーク


こんな感じ

{package hoge;
 use strict;
 use CGI;
 use Data::Dumper;
 my %hash;
 my $cgi = CGI->new;
 $hash{'c'} = $cgi->param('c');
 print "NG\n" if !$cgi->param('c');
 print "OK $hash{'c'}\n" if $cgi->param('c');
 1;
 }

 {package TestApp;
 use strict;
 use CGI;
 use Test::More tests => '1';
 use Data::Dumper;
 sub new { bless [],shift }]
 sub test1{
      my $self = shift;
      my %hash;
      my $cgi = CGI->new;
      warn Dumper($cgi->param('c'));
      ok !$cgi->param('c');
  }
 1;
 }

package Main;
use strict;
use Test::More;
use Carp;
use URI;
$SIG{__DIE__} = \&Carp::confess;
sub _set_qstr {
 my %q = @_;
 my $uri = URI->new;
 $uri->query_form(%q);
 $ENV{REQUEST_METHOD} = 'GET';
 $ENV{QUERY_STRING} = $uri->query;
 warn "env = $ENV{QUERY_STRING}";
}
$ENV{REQUEST_METHOD} = 'GET'; $ENV{QUERY_STRING} = '';
#TestApp->new->test1; _set_qstr(c => 'zzz'); TestApp->new->test1;