【发布时间】:2014-10-28 15:53:50
【问题描述】:
我有以下场景,我需要模拟具有多个包的模块中的子例程。
我的模块(moddemo.pm)
package A;
sub helloa
{
print "Hello, Im in demomod module of package A\n";
return 1;
}
package B;
sub hellob
{
print "Hello, Im in demomod module of package B\n";
return 1;
}
1;
我需要模拟 A::helloa()、B::hellob() 子例程。这是我尝试过的代码,但失败了。
#!/usr/bin/perl
use Test::MockModule;
use moddemo;
{
my $mockobj = new Test::MockModule('moddemo');
$mockobj->mock('A::helloa', sub { print "This is mocked object calling helloa function\n"; });
$mockobj->mock('B::hellob', sub { print "This is mocked object calling hellob function\n";});
modobj::A::helloa();
modobj::B::hellob();
}
任何帮助如何模拟这些子例程?提前致谢。
【问题讨论】:
标签: perl unit-testing mocking package perl-module