语境:如何使用Test :: More和朋友自动测试继承行为?
说我有相互继承几个模块(使用老派的继承与base
和parent
,不驼鹿或类似)。 Foo::Bar
继承Foo
和Foo::Bar::Baz
继承Foo::Bar
。所有这些模块都有用Test::More
编写的测试套件。子类的测试套件只测试它实现的方法。子类不一定会覆盖其父母中的所有方法,尽管他们可能会添加父母不具备的新方法。
问:
有一些测试框架,技术或Test::More
功能与我可以写测试,不仅要测试的具体子类的行为,但也将随后运行任何继承的行为测试套件/父类以及?基本上,我正在寻找一些东西,它允许我为子类的独特/特殊行为编写测试,但也会测试并确保子类在测试中的行为与预期的父类相同。
我已经试过:
我已经写了与建立一个字符串指定模块的实例,并取决于什么类型的模块运行测试反对发电机方法非常简单的测试工具被请求(有一个中央哈希,保持跟踪子类/超类层次结构),但这似乎很粗糙。我假设(像我在Perl中需要做的大多数事情),其他人已经以更加优雅和稳健的方式做到了这一点。