Skip to content

JaSei/Test-RestAPI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NAME

Test::RestAPI - Real mock of REST API

SYNOPSIS

my $api = Test::RestAPI->new(
    endpoints => [
        Test::RestAPI::Endpoint->new(
            path => '/a',
            method   => 'any',
        )
    ],
);

$api->start();

HTTP::Tiny->new->get($api->uri.'/test');

DESCRIPTION

In many (test) case you need mock some REST API. One way is mock your REST-API class abstraction or HTTP client. This module provides other way - start generated Mojolicious server and provides pseudo-real your defined API.

METHODS

new(%attribute)

%attribute

endpoints

ArrayRef of instances Test::RestAPI::Endpoint

default is / (root) 200 OK - hello:

Test::RestAPI::Endpoint->new(
    path   => '/',
    method => 'any',
    render => {text => 'Hello'},
);

mojo_app_generator

This attribute is used for generating mojo application.

default is Test::RestAPI::MojoGenerator

start

Start REST API (Mojolicious) application on some random unused port and wait to initialize.

For start new process is used fork-exec on non-windows machines and Win32::Process for windows machines.

For generating Mojolicious application is used Test::RestAPI::MojoGenerator in mojo_app_generator attribute - is possible set own generator.

count_of_requests($path)

return count of request to $path endpoint

list_of_requests_body($path)

return list (ArrayRef) of requests body to $path endpoint

LICENSE

Copyright (C) Avast Software.

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

AUTHOR

Jan Seidl seidl@avast.com