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 $reason
todo_skip($why, $count) if $reason
$TODO
plan(%plan)
done_testing
BAIL_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 ali@anari.me
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.