perl Testing 读书笔记(测试一个简单的类)

上一篇 / 下一篇  2012-04-04 22:53:00 / 个人分类:perl相关

 

类的代码如下,Greeter.pm

package Greeter;

sub new {
 my ($class, %args) = @_;
 bless \%args, $class;
}

sub name {
 my $self = shift;
 return $self->{name};
}

sub age {
 my $self = shift;
 return $self->{age};
}

sub greet {
 my $self = shift;
 return "Hello, my name is " . $self->name() . "!";
}

1;

 

测试脚本如下,TestGreeter.pl

#!/usr/bin/perl

use strict;
use warnings;

use Test::More tests => 4;
use_ok( 'Greeter' ) or exit;

my $greeter = Greeter->new( name => 'Emily', age => 21 );
isa_ok( $greeter, 'Greeter' );

is( $greeter->age(), 21, 'age() should return age for object' );
like( $greeter->greet(), qr/Hello, .+ is Emily!/,
      'greet() should include object name' );

运行结果如下

D:\loveperl>perl TestGreeter.pl
1..4
ok 1 - use Greeter;
ok 2 - The object isa Greeter
ok 3 - age() should return age for object
ok 4 - greet() should include object name

进行了4项测试。

第一项测试检查该类的对象构造器是否返回了正确无误的Greeter对象。

第二项isa_ok()会查验实例变量是否确实是已经定义过的引用。如果它尚未定义,或者不是引用,更甚于它是其它类的对象,而不是指定类或其派生对象的类,都会导致测试失败

 

第三项测试,检查对象的年龄是否和构造对象时给出的Emily的年龄一致。

最后一个测试使用like()来比较前两个参数的值。

 


TAG:

 

评分:0

我来说两句

Open Toolbar