我通常以这种方式编写Perl测试
for my $i ( 0, 1, 2 ) {
is_deeply( $fetch_public_topic_ids->[$i],
$expected_sorted_topic_list->[$i], 'Match' );
当$expected_sorted_topic
是我的测试用例数据的数组引用时。我有时得到反馈,我应该避免在我的“for”中写0,1,2,3 ......或0 ... 5,因为它被认为是“糟糕的风格”?
但我有什么替代方案呢?
答案 0 :(得分:5)
您希望迭代数组的索引,但在确定索引时没有数组数字。问题是索引的硬编码。
for my $i (0..$#$fetch_public_topic_ids) {
...
}
答案 1 :(得分:5)
为什么你甚至使用循环?
你应该能够做到
is_deeply( $fetch_public_topic_ids, $expected_sorted_topic_list );
答案 2 :(得分:1)
将测试放在一个哈希数组中:
my @tests = (
{
fetch_public_topic_ids => [ "whatever" ],
expected_sorted_topic_list => [ "whatever" ],
test_name => "Match",
},
# repeat as needed
);
for my $test ( @tests ){
is_deeply( $test->{ fetch_public_topic_ids },
$test->{ expected_sorted_topic_list },
$test->{ test_name },
);
}