【发布时间】:2011-02-25 00:52:50
【问题描述】:
我在一些测试中使用了 MockObjects,只需要通过调用 SUPER 类来测试一个函数,但我似乎无法让它工作。可以不模拟像 $this->SUPER::save() 这样的 UNIVERSAL 调用吗?如果是,你是怎么做的?
谢谢。
编辑:
找到了!
使用来自Test::MockObject的fake_module
所以,假设你的基本模块是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 调用怎么办?)。
【问题讨论】:
标签: perl unit-testing inheritance