测试Catalyst REST API的最简单方法是什么

问题描述:

我在使用Catalyst::Controller::REST构建RESTful Web服务。通常对于Web测试,我使用Test::WWW::Mechanize,但这似乎更适合“GET/POST HTML RPC”测试。有没有任何测试模块可以使用GET/POST/PUT/DELETE等等来使用基本身份验证来测试HTTP,并且JSON容易?也许是与Catalyst/PSGI很好集成的东西,所以我不必启动Web服务器?测试Catalyst REST API的最简单方法是什么

Catalyst :: Test是LWP :: UserAgent的一个子类。下面应该给你正确的观念:

#!/usr/bin/env perl 
use warnings; 
use strict; 

use Test::More; 
use Catalyst::Test 'MyApp'; 
use HTTP::Request::Common; 
use JSON::Any; # or whatever json module you usually use 
my $data = 'some_json_data_here'; 
my $res = request(
    POST '/some_path', 
    Content_Type => 'text/xml', 
    Content => $data, 
); 

my $content = json_decode($res->content); # or whatever, can't remember the interface. 
my $expected = "some_data"; 
is_deeply ($content, $expected); 
+0

那会工作,但我希望有东西,只想做所有的序列化/反序列化,我无需编写所有的JSON/HTTP代码,例如方便的方法。 – xenoterracide