Я пытаюсь протестировать некоторый код в разных ситуациях (для разных наборов результатов). У меня первый тест работает хорошо, но следующий пытается повторно использовать первую «таблицу».
Мои наборы результатов:
my $usernames_many = [
{ username => '1234567' },
{ username => '2345678' },
];
my $usernames_empty = [
];
, но теперь, когда я пытаюсь выполнить следующие вызовы:
$mock_dbi->set_retval_scalar(MOCKDBI_WILDCARD, "SELECT username FROM location", $usernames_many);
is_deeply(find_multiple_registrations($mock_db, 15), [ '1234567', '2345678' ], "many entries");
$mock_dbi->set_retval_scalar(MOCKDBI_WILDCARD, "SELECT username FROM location", $usernames_empty);
is_deeply(find_multiple_registrations($mock_db, 15), [ ], "no entries");
Первый тест проходит, но второй результат приводит к:
not ok 3 - no entries
# Failed test 'no entries'
# at ./report_many_registrations_test.pl line 28.
# Structures begin differing at:
# $got->[0] = '1234567'
# $expected->[0] = Does not exist
Похоже, что первый набор результатов использовался снова. Как я могу очистить набор результатов? Или сбросить состояние другим способом?