Chr*_*oms 5 testing tdd perl moose
我想严格开始测试驱动开发.但是,我想知道我应该测试多少Moose和MooseX :: FollowPBP生成的方法.例如,我有以下类:
package Neu::Series;
use Moose;
use MooseX::FollowPBP;
use File::Find::Wanted;
has 'file_regex' => (
isa=>'RegexpRef',
is=>'rw',
default => sub{
qr{
[A-Z] #Uppercase letter
[a-zA-Z]* #any letter, any number of times
[-] #dash
( #open capturing parenthesis
[0-9]
[0-9]
[0-9]
[0-9]
[a-zA-Z]? #any letter, optional
) #close capturing parenthesis
}xms;
},
);
has 'top_dir' => (
isa=>'Str',
is=>'rw',
);
has 'access' =>(
isa=>'Neu::Access',
is=>'ro',
required=>1,
);
1;
Run Code Online (Sandbox Code Playgroud)
我目前的测试脚本是:
use strict;
use warnings;
use Test::More tests => 8;
use Neu::Access;
BEGIN{ use_ok('Neu::Series'); }
can_ok( 'Neu::Series', 'new');
can_ok( 'Neu::Series', 'set_file_regex');
can_ok( 'Neu::Series', 'get_file_regex');
can_ok( 'Neu::Series', 'set_top_dir');
can_ok( 'Neu::Series', 'get_top_dir');
can_ok( 'Neu::Series', 'get_access');
my $access = Neu::Access->new(dsn => 'test');
my $series_worker = Neu::Series->new(access => $access);
isa_ok($series_worker, 'Neu::Series');
Run Code Online (Sandbox Code Playgroud)
这是足够的还是太多的测试?(也就是说,除了明显缺少正则表达式的测试之外).
我以为我在某个地方看过一个网页或其他关于此的帖子,但我今天无法找到它.
测试访问器是否正确生成真的没有意义.如果他们不是,你会很快发现,因为你写的任何真正的测试都会失败.
Moose本身测试正确生成访问器,使用Moose的类获取构造函数,依此类推.使用依赖项的一个要点是,您可以专注于编写和测试应用程序,而不是帮助程序代码.
我同意daotoad,它可能值得测试你自己写的约束和强制.
我会专注于测试我的规格。我是否正确地告诉了 Moose 我希望它做什么?
为此,我将从以下测试开始:
VII视为 aStr并强制转换为Intas 7,请测试它是否确实如此。