【发布时间】:2011-06-23 14:51:52
【问题描述】:
我正在使用“参数化”运行器来执行一些测试。我正在从 XML 文件生成测试数据。这工作正常。
现在我想将此行为应用于多个测试类,而无需复制测试数据生成代码。所以我创建了一个抽象类,它负责从“一个”XML 文件中填充测试数据。如果子类能分辨出使用哪个 XML 文件,我的目标就达到了。
但我一直找不到办法。
这是我的超类
@RunWith(Parameterized.class)
public abstract class AbstractXMLDrivenTest{
@@Parameters
public static Collection<Object[]> generateData () {
/* Reads an XML File and returns test input data */
}
}
这是一个子类
public class TestSomeThing extends AbstractXMLDrivenTest {
public TestSomeThing(args) {
/* Args are populated by generateData in superclass */
}
}
如果我在 AbstractXMLDrivenTest 中使用用于 TestSomething 的 XML 文件,这将正常工作。 我希望 XML 文件由子类(即 TestSomething)定义,这样我也可以将超类与其他测试用例一起使用。我希望这现在很清楚了。
【问题讨论】:
-
这里没有明白重点。为什么在静态方法中生成 XML?为什么解决方案必须包含继承(与组合)。
标签: java oop inheritance static-methods