2011-11-29 22 views
6

Tôi đang xây dựng một dịch vụ web RESTful bằng cách sử dụng Catalyst::Controller::REST. Thông thường để kiểm tra web tôi sử dụng Test::WWW::Mechanize, nhưng điều đó có vẻ thích hợp hơn cho thử nghiệm "GET/POST HTML RPC". Có bất kỳ mô-đun thử nghiệm nào có thể thử nghiệm HTTP với auth cơ bản, sử dụng GET/POST/PUT/DELETE vv và JSON dễ dàng không? có lẽ một cái gì đó tích hợp tốt với Catalyst/PSGI vì vậy tôi không phải bắt đầu một máy chủ web?Cách dễ nhất để kiểm tra Catalyst REST API

Trả lời

7

Chất xúc tác :: Kiểm tra là phân lớp của LWP :: UserAgent. Dưới đây sẽ cho bạn ý tưởng đúng:

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

rằng tôi sẽ làm việc, nhưng tôi đã hy vọng có một cái gì đó sẽ chỉ làm tất cả những serialization/deserialization cho tôi mà không cần viết tất cả các mã/HTTP JSON, ví dụ như phương pháp thuận tiện . – xenoterracide