2013-05-20 70 views
0

我有一个函数返回一个哈希引用。特定功能正在与具有高延迟回复且多次运行的资源通话。取决于被调用的次数 - 运行或测试程序需要花费几分钟。Perl测试假哈希引用返回

我想要做的就是测试模拟该函数的返回,但以其他方式正常运行该程序。

我对Perl测试或任何代码测试的想法很陌生,所以非常欣赏指导如何实现这一点。

功能可能是真的。

sub my_func { 
    my $data; 
    .... get_data_from_high_latency_resource... 

    return $data; 
} 

$数据是在这种情况下,散列引用,但我想它我问一个标量或数组不会有所作为这个问题。

+0

您可以添加功能,你的问题? – dewd

回答

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"