h2xs -AX TestDemo package TestDemo; use Moose; use Color; has 'testing' => (is => 'rw', isa => 'Int'); sub ret1 { return 1; } sub get_color { my $c = Color->new; return $c; } sub add { my $self = shift; my ($a, $b) = @_; return $a + $b; } sub _execute_ping { my $self = shift; my ($hostname) = @_; my $pr; if ($self->testing == 1) { $pr = ' 0% packet loss'; } else { $pr = `ping -c 1 $hostname`; } return $pr; } sub _parse_ping { my $self = shift; my ($input) = @_; return 1 if $input =~ / 0% packet loss/ms; return 0; } sub ping { my $self = shift; my ($hostname) = @_; my $pr = $self->_execute_ping($hostname); return $self->_parse_ping($pr); } 1; ## t/TestDemo.t use Test::More; my $fixed_tests = 3; my $t = YAML::LoadFile('t/add_data.yaml'); plan tests => $fixed_tests + scalar @$t; BEGIN { use_ok('TestDemo') }; use YAML; use Data::Dumper; ######################### # 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. my $td = TestDemo->new(); is($td->ret1, 1, 'Returns 1'); isa_ok($td->get_color, 'Color', 'Is object of type Color'); foreach (@$t) { is($td->add($_->[0], $_->[1]), $_->[2], 'Add correct'); } $td->testing(1); is($td->ping('8.6.5.5'), 1, 'Ping OK'); ## add_data.yaml - - 1 - 2 - 3 - - 3 - 4 - 7 - - 3 - 3 - 6