2011-11-29 12 views
6

Estoy creando un servicio web RESTful, usando Catalyst::Controller::REST. Por lo general, para las pruebas web utilizo Test::WWW::Mechanize, pero parece más apropiado para las pruebas "GET/POST HTML RPC". ¿Hay algún módulo de prueba que pueda probar HTTP con la autenticación básica, utilizando GET/POST/PUT/DELETE, etc. y JSON fácil? tal vez algo que se integre bien con Catalyst/PSGI, así que no tengo que iniciar un servidor web?¿Cuál es la forma más fácil de probar una API REST de catalizador?

Respuesta

7

Catalyst :: Test es una subclase de LWP :: UserAgent. El siguiente debe darle la idea correcta:

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

que va a trabajar, pero yo estaba esperando que había algo que se acaba de hacer toda la serialización/deserialización para mí sin tener que escribir todo el código/HTTP JSON, por ejemplo, métodos de conveniencia . – xenoterracide

Cuestiones relacionadas