我正在使用「參數化」跑步者來執行一些測試。我正在從XML文件生成測試數據。這工作正常。子類是否可以修改Java中的抽象超類中靜態方法的行爲?
現在我想將此行爲應用於多個測試類,而無需複製測試數據生成代碼。所以我做了一個抽象類來完成從「一個」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 */
}
}
如果我使用用於TestSomething在AbstractXMLDrivenTest XML文件也能正常工作。 我希望XML文件由子類定義,即TestSomething,以便我可以在其他測試用例中使用超類。我希望現在這是清楚的。
請示例源代碼? –
在這裏沒有得到重點。爲什麼在靜態方法中生成XML?爲什麼解決方案必須包含繼承(相對於組合)。 –