Я использую MockObjects в некоторых своих тестах, и мне просто нужно было протестировать функцию с помощью вызова класса SUPER, и я не могу заставить его работать.Могут ли вызовы UNIVERSAL, такие как $ this-> SUPER :: save (), не быть поддельными?Если да, как ты это делаешь?
Спасибо.
Редактировать:
Нашли!
Используйте fake_module
из Test::MockObject
Итак, допустим, ваш базовый модуль это Some::Module
, а ваша подпрограмма выполняет вызов $this->SUPER::save
, используйте
my $child_class_mockup = Test::MockObject->new();
$child_class_mockup->fake_module(
'Some::Module',
save => sub () { return 1; }
);
Оставив вопрос открытым в течение нескольких дней, чтобы получить информацию о различных способах / библиотеках для выполнения этого (что, если у вызова SUPER был вызов SUPER?), Прежде чем принять этот ответ.