如何检查Perl模块测试中的网络可用性?

时间:2014-01-01 12:17:48

标签: perl networking testing curl

使用网络任务处理Perl模块时,我必须在测试时检查网络可用性或故障。更确切地说,我需要测试网络可用性,然后测试特定的API可用性。

以下是我的api-interraction.t测试中的一些代码:

use strict;
use warnings;
use Test::More;

# Foo::Module is using WWW::Curl::Simple
my $requester = Foo::Module->new();

my $query = "http://existing-doma.in?with=some&useful=parameters";
# We should be able to test a bad request too
my $wrong_query = "http://deaddoma.in";

my $api_test_code = $requester->get_api_status($query);

if ($api_test_code == 200) {
    cmp_ok($api_test_code, "==", 200, "API reachable - HTTP status = 200");
} else {
    cmp_ok($api_test_code, "!=", 200, "API not reachable - HTTP status != 200");
}            

当网络出现故障时,似乎无法正常工作。关于如何更好地实现这一目标的任何建议?

1 个答案:

答案 0 :(得分:4)

use strict;
use warnings;
use LWP::Simple;
use Test::More tests => 1;

my $query = "http://existing-doma.in";
my $browser = LWP::UserAgent->new;
my $response = $browser->get( $query );

is $response->code, 200;