/ / Nahrádzam môj $ i (0, 1, 2) niečím štýlovejším? - perl

Nahrádzaš môj $ i (0, 1, 2) za niečo štýlovejšie? - perl

Zvyčajne píšem svoje Perl testy týmto spôsobom

 for my $i ( 0, 1, 2 ) {
is_deeply( $fetch_public_topic_ids->[$i],
$expected_sorted_topic_list->[$i], "Match" );

kedy $expected_sorted_topic je pole ref pre moje údaje z testovacieho prípadu. Niekedy dostávam spätnú väzbu, že by som sa mal vyhnúť písaniu 0, 1, 2, 3 ... alebo 0 ... 5 do svojho „pre“, pretože sa to považuje za „zlý štýl“?

Aké alternatívy však mám namiesto toho?

odpovede:

5 pre odpoveď č. 1

Chcete iterovať cez indexy poľa, ale pri určovaní indexu sa nebudú zobrazovať žiadne čísla poľa. Problémom je pevné kódovanie indexov.

for my $i (0..$#$fetch_public_topic_ids) {
...
}

5 pre odpoveď № 2

Prečo vôbec používate slučku?

Mali by ste byť schopní urobiť

is_deeply( $fetch_public_topic_ids, $expected_sorted_topic_list );

1 pre odpoveď č. 3

Zostavte svoje testy do množstva hashov:

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                  },
);
}