NAME
Test::JSON::More - JSON Test Utility
SYNOPSIS
use Test::JSON::More;
use Test::More;
my $json = '{"foo":123,"bar":"baz"}';
ok_json($json);
cmp_json($json, '{"bar":"baz","foo":123}');
my $schema = {
type => "object",
properties => {
foo => { type => "integer" },
bar => { type => "string" }
},
required => [ "foo" ]
};
ok_json_schema($json, $schema);
is parsed_json->{foo}, 123;
done_testing;
DESCRIPTION
Test::JSON::More is the utility for testing JSON string.
SWITCH JSON MODULES
By default, Test::JSON::More use JSON module for encoding/decoding JSON. If you would like to use an another JSON module in the test, then you can specify it at loading Test::JSON::More
, like below.
use Test::JSON::More 'JSON::XS';
NOTE that the switching JSON module needs to implement new, encode and decode methods.
METHODS
ok_json
ok_json($json, $test_name)
Test passes if the string is valid JSON.
cmp_json
cmp_json($json, $expected_json, $test_name)
Test passes if the two JSON strings are valid JSON and evaluate to the same data structure.
ok_json_schema
ok_json_schema($json, $schema, $test_name)
Test passes if the string is valid JSON and fits the schema againsts its specification.
$schema
is a perl hash reference or a string of JSON schema, whichever is OK.
parsed_json
$ref = parsed_json();
The parsed_json
function returns the perl hash ref or array ref that is the result of parsed JSON in a test methods(i.e. ok_json, cmp_json or ok_json_schema).
REPOSITORY
Test::JSON::More is hosted on github: http://github.com/bayashi/Test-JSON-More
I appreciate any feedback :D
AUTHOR
Dai Okabayashi <bayashi@cpan.org>
SEE ALSO
JSON validator: JSV::Validator, JSV
Test builder: Test::Builder::Module
Inspired by Test::JSON
LICENSE
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.