Test::Core - Modern Perl testing with a single import
version 0.0200
use Test::Core;
# Your tests here
done_testing
Test::Core provides the best testing harness of Modern Perl in a single, user-friendly import. It builds off of Test::Modern while also providing clean interfaces to dumping and mocking facilities from other libraries.
Test::Core also automatically imposes strict and warnings on your script, and loads IO::File. Although Test::Modern is a modern testing framework, it should run fine on pre-modern versions of Perl.
Test::Core exports the following from Test::More:
ok($truth, $description)is($got, $expected, $description)isnt($got, $unexpected, $description)like($got, $regexp, $description)unlike($got, $regexp, $description)is_deeply($got, $expected, $description)cmp_ok($got, $operator, $expected, $description)new_ok($class, \@args, $name)isa_ok($object|$subclass, $class, $name)can_ok($object|$class, @methods)pass($description)fail($description)subtest($description, sub { ... })diag(@messages)note(@messages)explain(@messages)skip($why, $count) if $reasontodo_skip($why, $count) if $reason$TODOplan(%plan)done_testingBAIL_OUT($reason)
Test::Core exports the following from Test::Fatal:
exception { BLOCK }
Test::Core exports the following from Test::Warnings:
warning { BLOCK }warnings { BLOCK }
Test::Core exports the following from Test::API:
public_ok($package, @functions)import_ok($package, export => \@functions, export_ok => \@functions)class_api_ok($class, @methods)
Test::Core exports the following from Test::LongString:
is_string($got, $expected, $description)is_string_nows($got, $expected, $description)like_string($got, $regexp, $description)unlike_string($got, $regexp, $description)contains_string($haystack, $needle, $description)lacks_string($haystack, $needle, $description)
Test::Core exports the following from Test::Deep:
cmp_deeply($got, $expected, $description)ignore()methods(%hash)listmethods(%hash)shallow($thing)noclass($thing)useclass($thing)re($regexp, $capture_data, $flags)superhashof(\%hash)subhashof(\%hash)bag(@elements)set(@elements)superbagof(@elements)subbagof(@elements)supersetof(@elements)subsetof(@elements)all(@expecteds)any(@expecteds)obj_isa($class)array_each($thing)str($string)num($number, $tolerance)bool($value)code(\&subref)
Test::Core exports the following from Test::Modern:
does_ok($object|$subclass, $class, $name)namespaces_clean(@namespaces)is_fastest($implementation, $times, \%implementations, $desc)object_ok($object, $name, %tests)
Test::Core exports the following from Data::Dump:
dd(@objects)ddx(@objects)
Test::Core implements the following mocking functions using Test::MockModule, Test::MockObject, and Test::MockObject::Extends:
-
MM($class, %mocks)# This module is mocked as long as $mock is in scope my $mock = MM('DateTime', year => 1776); -
MO(%mocks)# Takes an optional "isa" for extending existing objects my $mock = MO( isa => 'DateTime', now => sub { DateTime->now->add(days => 3) }, );
Please report any bugs or feature requests on the bugtracker website https://github.com/aanari/Test-Core/issues
When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.
Ali Anari [email protected]
This software is copyright (c) 2015 by Ali Anari.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.