问这个问题我感到有点惭愧,但我很好奇.我最近写了一个脚本(没有在模块中组织代码),它读取商店的日志文件并将信息保存到数据库.
例如,我写了这样的东西(通过Richard Huxton):
while (<$infile>) { if (/item_id:(\d+)\s*,\s*sold/) { my $item_id = $1; $item_id_sold_times{$item_id}++; } } my @matched_items_ids = keys %item_id_sold_times; my $owner_ids = Store::Model::Map::ItemOwnerMap->fetch_by_keys( \@matched_item_ids ) ->entry(); for my $owner_id (@$owner_ids) { $item_id_owner_map{$owner_id}++; }
比如说,这个脚本叫做script.pl.在测试文件时,我创建了一个文件script.t,并且不得不在script.t中重复一些script.pl块.复制粘贴相关代码部分后,我做了以下确认:
is( $item_id_sold_times{1},1,"Number of sold items of item 1" ); is( $item_id_owner_map{3},8,"Number of sold items for owner 3" );
等等等等.
但是有些人指出我写的不是考试.这是一个确认脚本.一个好的测试包括用模块编写代码,编写一个脚本,在模块中踢出方法并为模块编写测试.
这让我想到了软件工程中最广泛使用的测试的定义是什么.也许你们中的一些人甚至测试过Perl核心功能可以帮到我.脚本(未模块化)无法正确测试?
问候
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。