Skipping Test::Class tests in abstract base classes
With the latest release of Test::Class::Most, I added the is_abstract feature. With this, you can declare a test class like this:
package TestsFor::TV::Episode::Broadcast;
use Test::Class::Most
parent => 'TestsFor::TV::Episode',
is_abstract => 1;
is_abstract is a non-inherited property of a test class which says "I'm abstract" (no surprise there) and you can check it with:
Test::Class::Most->is_abstract($some_test_class);
The reason for that is simple. Imagine you have a TV::Episode class, but it's an abstract base class which should never be instantiated. You actually have a TV::Episode::Broadcast and TV::Episode::OnDemand classes which are the concrete implementations. You can make tests work in your test classes very cleanly with this.