7
我在我的一些测试中使用了MockObjects,并且只能通过调用SUPER类来测试一个函数,而我似乎无法使其工作。 UNIVERSAL调用像$ this-> SUPER :: save()不会被模拟吗?如果是的话,你是如何做到的?在Perl中嘲笑超类调用(使用Test :: MockObject)
谢谢。
编辑:
发现它!
使用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呼叫呢?)。