Использование Test :: MockDBI несколько раз с разными результатами

Я пытаюсь протестировать некоторый код в разных ситуациях (для разных наборов результатов). У меня первый тест работает хорошо, но следующий пытается повторно использовать первую «таблицу».

Мои наборы результатов:

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

Похоже, что первый набор результатов использовался снова. Как я могу очистить набор результатов? Или сбросить состояние другим способом?

6
задан viraptor 18 August 2010 в 10:50
поделиться