Скажем, у меня есть несколько модулей, которые наследуют друг от друга (с использованием старой школы наследования с base
и parent
, не Moose или аналогичный). Foo::Bar
наследует Foo
и Foo::Bar::Baz
наследует Foo::Bar
. Все эти модули имеют тестовые наборы, написанные с помощью Test::More
. Набор тестов для дочернего класса проверяет только те методы, которые он реализует. Классы для детей не обязательно переопределяют все методы у их родителей, хотя они могут добавлять новые методы, которых у их родителя нет.
Вопрос:
Есть ли какие испытания рамки, техник, или Test::More
особенности, с которой я могу писать тесты, которые будут не только тест подкласса конкретного поведения, но и затем запустить тестовые наборы для любого унаследованного поведения/родительские классы? В основном, я ищу что-то, что позволяет мне писать тесты для уникального/специального поведения подкласса, но также будет проверять и следить за тем, чтобы подкласс вел себя в тестах так же, как ожидается, что его родительский класс ,
Что я пробовал:
Я написал очень простой тест упряжь с методом генератора, который строит экземпляр модуля строки выбранных и проходит испытания против него в зависимости от того, какого типа модуля (есть центральный хеш, который отслеживает иерархию подкласса/суперкласса), но это кажется грубым. Я предполагаю, что (как и большинство вещей, которые мне нужно делать в Perl), кто-то еще сделал это гораздо более элегантным и надежным способом.