2011-11-29 18 views
6

Buduję usługę WWW RESTful przy użyciu Catalyst::Controller::REST. Zazwyczaj do testowania stron internetowych używam Test::WWW::Mechanize, ale wydaje się to bardziej odpowiednie dla testów "GET/POST HTML RPC". Czy są jakieś moduły testowe, które sprawiałyby, że testowanie HTTP z podstawowym uwierzytelnieniem, używając GET/POST/PUT/DELETE itp. I JSON było łatwe? może coś, co dobrze integruje się z Catalyst/PSGI, więc nie muszę uruchamiać serwera WWW?Jaki jest najłatwiejszy sposób przetestowania interfejsu REST interfejsu API Catalyst?

Odpowiedz

7

Katalizator :: Test jest podklasą LWP :: UserAgent. Poniższy powinno dać dobry pomysł:

#!/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

że będziemy pracować, ale miałem nadzieję, że coś było po prostu zrobić wszystko serializacji/deserializacji dla mnie bez pisania cały kod/HTTP JSON, np metody wygoda . – xenoterracide

Powiązane problemy