/ / Zastąpienie dla moich $ i (0, 1, 2) czymś bardziej stylowym? - perl

Zastąpienie dla moich $ i (0, 1, 2) czymś bardziej stylowym? - perl

Zwykle piszę testy Perla w ten sposób

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

gdy $expected_sorted_topic to tablica ref dla moich danych testowych. Czasem otrzymuję informację, że powinienem unikać pisania 0, 1, 2, 3 ... lub 0 ... 5 w moim „for”, ponieważ jest to uważane za „zły styl”?

Ale jakie mam alternatywy?

Odpowiedzi:

5 dla odpowiedzi № 1

Chcesz iterować indeksy tablicy, ale nie określasz liczb w tablicy przy określaniu indeksu. Problemem jest kodowanie indeksów.

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

5 dla odpowiedzi nr 2

Dlaczego w ogóle używasz pętli?

Powinieneś być w stanie to zrobić

is_deeply( $fetch_public_topic_ids, $expected_sorted_topic_list );

1 dla odpowiedzi nr 3

Umieść swoje testy w tablicy skrótów:

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