diff options
author | Michael G. Schwern <schwern@pobox.com> | 2011-11-15 17:39:07 -0800 |
---|---|---|
committer | Father Chrysostomos <sprout@cpan.org> | 2011-11-17 10:01:34 -0800 |
commit | bbce3ca648eab3f375216d4c9eba05cb6e005d05 (patch) | |
tree | 7ab2097535b9ff42568b0f010c31906bb41542b8 /t/test_pl | |
parent | b8ab4b0c2ac8ae091a7ed7909f0d9b01ae5717f0 (diff) | |
download | perl-bbce3ca648eab3f375216d4c9eba05cb6e005d05.tar.gz |
Add class_ok() and object_ok() to t/test.pl.
Change every existing instance of isa_ok() to use object_ok(). This is safe because
before this point, t/test.pl's isa_ok() only worked on objects. lib/dbmt_common.pl is
the last hold out because it uses Test::More.
These are like isa_ok() but they also check if it's a class or an object.
This lets the core tests defend against outlandish bugs while allowing
t/test.pl to retain feature parity with Test::More.
Diffstat (limited to 't/test_pl')
-rw-r--r-- | t/test_pl/can_isa_ok.t | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/t/test_pl/can_isa_ok.t b/t/test_pl/can_isa_ok.t index bb24f56e66..081d3e563b 100644 --- a/t/test_pl/can_isa_ok.t +++ b/t/test_pl/can_isa_ok.t @@ -5,7 +5,7 @@ use strict; use warnings; -BEGIN { require "t/test.pl"; } +BEGIN { require "test.pl"; } require Test::More; @@ -41,4 +41,23 @@ isa_ok(\42, 'SCALAR'); } +note "object/class_ok"; { + { + package Child; + our @ISA = qw(Parent); + } + + { + package Parent; + sub new { bless {}, shift } + } + + # Unfortunately we can't usefully test the failure case without + # significantly modifying test.pl + class_ok "Child", "Parent"; + class_ok "Parent", "Parent"; + object_ok( Parent->new, "Parent" ); + object_ok( Child->new, "Parent" ); +} + done_testing; |