我有一个返回哈希引用的函数。特定功能是与具有高延迟应答的资源通信并且多次运行。根据调用的次数 - 运行或测试程序需要几分钟。
我想做的是测试Mock返回函数,否则正常运行程序。
我是Perl测试或任何代码测试的新手,所以非常了解如何实现这一目标。
功能可能是真的。
sub my_func {
my $data;
.... get_data_from_high_latency_resource...
return $data;
}
$ data在这种情况下是一个哈希引用,但我想我是在问这个关于标量或数组的问题,它不会产生任何影响。
答案 0 :(得分:2)
今天早上我的工作问题非常类似;我的代码中有一个需要修复的错误,但代码对单元测试有抵抗力,因为它是硬编码的,以便在操作过程中发出POST请求。我使用Sub::Override模块来删除“make_http_request”函数,并让我的存根返回参数的Data :: Dumper'd版本。在我的测试和错误暴露的输出。
该模块的文档很简单,但它几乎是这样的:
my $object_under_test = My::Object->new(); # This has a method called run_me
my $override = Sub::Override->new( My::Object::run_me => sub { return 'I have run' } );
my $result = $object_under_test->run_me();
# $result now contains "I have run"