gpt4 book ai didi

Perl:测试的定义是什么?

转载 作者:行者123 更新时间:2023-11-28 19:45:31 27 4
gpt4 key购买 nike

问这个问题有点惭愧,但我很好奇。我最近写了一个脚本(没有在模块中组织代码)读取商店的日志文件并将信息保存到数据库中。

例如,我写了这样的东西(来自 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 的 block 。复制粘贴相关代码部分后,我会进行如下确认:

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 核心功能的人可以帮助我。无法正确测试脚本(未模块化)?

问候

最佳答案

一个重要的区别是:如果有人要编辑(错误修复或新功能)您的“script.pl”文件,那么在当前状态下运行您的“script.t”文件会提供有关新状态的任何有用信息'脚本.pl'?为此,您必须包含使用 .pl 文件,而不是有选择地复制/粘贴摘录。

在最好的情况下,您可以模块化设计软件并计划测试。如果你想在事后测试一个整体脚本,我想你可以编写一个测试脚本,在 exit() 之后 include 你的主程序并且至少有要测试的子程序...

关于Perl:测试的定义是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17056696/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com