Какой самый простой способ проверить REST API Catalyst - PullRequest
6 голосов
/ 29 ноября 2011

Я создаю веб-сервис RESTful, используя Catalyst :: Controller :: REST .Обычно для веб-тестирования я использую Test :: WWW :: Mechanize , но это кажется более подходящим для тестирования "GET / POST HTML RPC".Существуют ли какие-либо тестовые модули, которые бы облегчали тестирование HTTP с базовой аутентификацией, используя GET / POST / PUT / DELETE и т. Д. И JSON?возможно, что-то, что хорошо интегрируется с Catalyst / PSGI, поэтому мне не нужно запускать веб-сервер?

Ответы [ 2 ]

7 голосов
/ 29 ноября 2011

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); 
1 голос
/ 19 марта 2018

Или на более современном языке:

  my $data = '{"username":"xyz","password":"xyz"}';
  my $res = request
    (
     POST '/bar/thing',
     Content_Type => 'application/json',
     Content => $data,
    );

;)

...