2011-11-29 3 views
6

Catalyst::Controller::REST을 사용하여 RESTful 웹 서비스를 구축하고 있습니다. 일반적으로 웹 테스트를 위해 Test::WWW::Mechanize을 사용합니다.하지만 "GET/POST HTML RPC"테스트에 더 적합합니다. GET/POST/PUT/DELETE 및 JSON을 사용하여 기본 인증을 사용하여 HTTP를 테스트하는 테스트 모듈이 있습니까? 아마도 Catalyst/PSGI와 잘 통합되어 웹 서버를 시작할 필요가 없을 것입니다.Catalyst REST API를 테스트하는 가장 쉬운 방법은 무엇입니까

답변

7

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

관련 문제