语境:
假设我有一些相互继承的模块(使用老式继承base
and parent
,而不是 Moose 或类似的)。Foo::Bar
继承Foo
,Foo::Bar::Baz
继承Foo::Bar
。所有这些模块都有用Test::More
. 子类的测试套件只测试它实现的方法。子类不一定会覆盖其父类中的所有方法,尽管它们可能会添加其父类没有的新方法。
问题:
是否有一些测试框架、技术或Test::More
功能可以用来编写测试,这些测试不仅可以测试特定于子类的行为,而且还可以为任何继承的行为/父类运行测试套件?基本上,我正在寻找允许我为子类的独特/特殊行为编写测试的东西,但也将测试并确保子类在测试中的行为与其父类预期的行为相同.
我试过的:
我用生成器方法编写了一个非常简单的测试工具,该方法构建字符串指定模块的实例并根据请求的模块类型对其运行测试(有一个中央哈希跟踪子类/超类层次结构) ,但这似乎很粗糙。我假设(就像我需要在 Perl 中做的大多数事情一样),其他人已经以更优雅和更健壮的方式完成了这项工作。