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:
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.