Name
Test::Returns - Verify that a method's output agrees with its specification
Synopsis
use Test::More;
use Test::Returns;
returns_ok(42, { type => 'integer' }, 'Returns valid integer');
returns_ok([], { type => 'arrayref' }, 'Returns valid arrayref');
returns_not_ok("bad", { type => 'arrayref' }, 'Fails (expected arrayref)');
Version
Version 0.05
Description
Exports the function returns_ok, which asserts that a value satisfies a schema as defined in Params::Validate::Strict.
Integrates with Test::Builder for use alongside Test::Most and friends.
Methods
Returns_Is($Value, $Schema, $Test_Name)
Passes if $value satisfies $schema using Return::Set.
Fails otherwise.
$schema is passed directly to Return::Set and on to Params::Validate::Strict.
As a convenience, type => 'array' is accepted as a synonym for
type => 'arrayref': because a bare Perl array cannot be stored as a hash
value, Params::Validate::Strict only defines the arrayref type, but callers
may capture a list-returning function as an arrayref and validate it with
type => 'array'.
Schema keys prefixed with _ (such as _error_return and _error_handling
as emitted by App::Test::Generator) are passed through unchanged;
Params::Validate::Strict ignores unknown keys in a rule hash.
Returns_Isnt($Value, $Schema, $Test_Name)
Opposite of returns_is: passes if $value does not satisfy $schema.
Accepts type => 'array' as a synonym for type => 'arrayref', for
the same reasons as returns_is.
Returns_Ok($Value, $Schema, $Test_Name)
Alias for returns_is.
Provided for naming symmetry and clarity.
Returns_Not_Ok
Synonym of returns_isnt
Author
Nigel Horne <njh at nigelhorne.com>
See Also
Test::Builder, Return::Set, Params::Validate::Strict
Support
This module is provided as-is without any warranty.
Licence and Copyright
Copyright 2025-2026 Nigel Horne.
Usage is subject to the GPL2 licence terms. If you use it, please let me know.