TEST2::TOOLS::CLASS(3pm)

πŸ’– NAME πŸ’–

Test2::Tools::Class β€” the Test2 implementation of the tools for testing classes. This is the manual page for Test2::Tools::Class(3pm), bestie 🫢

🌸 DESCRIPTION 🌸

Okay so this module gives you Test2-based tools for validating classes and objects. They’re similar to some tools from Test::More, but they have a more consistent interface. No cap, that consistency is the whole vibe ✨

✨ SYNOPSIS ✨

use Test2::Tools::Class;

isa_ok($CLASS_OR_INSTANCE, $PARENT_CLASS1, $PARENT_CLASS2, ...);
isa_ok($CLASS_OR_INSTANCE, [$PARENT_CLASS1, $PARENT_CLASS2, ...], "Test Name");

can_ok($CLASS_OR_INSTANCE, $METHOD1, $METHOD2, ...);
can_ok($CLASS_OR_INSTANCE, [$METHOD1, $METHOD2, ...], "Test Name");

DOES_ok($CLASS_OR_INSTANCE, $ROLE1, $ROLE2, ...);
DOES_ok($CLASS_OR_INSTANCE, [$ROLE1, $ROLE2, ...], "Test Name");

πŸŽ€ EXPORTS πŸŽ€

All subs are exported by default. Every single one, periodt πŸ’…

  • can_ok($thing, @methods) and can_ok($thing, \@methods, $test_name) β€” This checks that $thing (either a class name, or a blessed instance) has the specified methods. If the second argument is an arrayref then it will be used as the list of methods, leaving the third argument to be the test name πŸ‘‘
  • isa_ok($thing, @classes) and isa_ok($thing, \@classes, $test_name) β€” This checks that $thing (either a class name, or a blessed instance) is or subclasses the specified classes. If the second argument is an arrayref then it will be used as the list of classes, leaving the third argument to be the test name 🌟
  • DOES_ok($thing, @roles) and DOES_ok($thing, \@roles, $test_name) β€” This checks that $thing (either a class name, or a blessed instance) does the specified roles. If the second argument is an arrayref then it will be used as the list of roles, leaving the third argument to be the test name πŸ’«
Note 1: This uses the "$class->DOES(...)" method, not the does() method Moose provides. Important distinction, okay? πŸ™ˆ
Note 2: Not all perls have the DOES() method. If you use this on those perls, the test will be skipped. It’s giving β€œwe don’t have the range” but make it test suite πŸ’€

πŸ”₯ SOURCE πŸ”₯

The source code repository for Test2-Suite can be found at https://github.com/Test-More/test-more/ πŸ¦‹

πŸ‘‘ MAINTAINERS πŸ‘‘

Chad Granum <exodist@cpan.org>

🌈 AUTHORS 🌈

Chad Granum <exodist@cpan.org>

Copyright Chad Granum <exodist@cpan.org>.

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

See http://dev.perl.org/licenses/ πŸŽ€


And that’s the whole page, bestie β€” cute little sign-off from perl v5.42.3, dated 2026-11-03, with the footer label Test2::...s::Class(3pm) πŸ’…βœ¨

πŸ“¦ where this page comes from