我想定義一個抽象方法,以便在我的抽象類中使用此方法。 然後,我想要在擴展抽象類的不同類中定義這個抽象方法。用不同的參數覆蓋抽象方法?
但我怎麼能這樣做呢? (目標是提供一些集成測試的基本方法,它們都使用相同的「結構」,但實現一些不同的邏輯)。
如何在抽象類中定義抽象方法WITH參數,在抽象類中使用此抽象方法,但是在我的測試實現中首先實現該方法?
public abstract class BaseIT {
protected doVerify(String params..) {
if (isValid()) {
//basic verification for all extending testcases
}
}
protected abstract boolean isValid(Object o);
}
public class TestA_IT extends BaseIT{
@Test
public void myTest {
//do some specific stuff and verify with resulting params
doVerify(params..);
}
protected boolean isValid(Object o) {
return o.isValid();
}
}
請記住,這只是我的問題(愚蠢)的例子。當然,我可以將isValid的結果傳遞給基類方法,但在我的具體情況中,這可能不是這樣。
問題是:Object o
是不同的測試用例實現的對象。
我可能不會爲此使用接口。我怎樣才能使這成爲可能?
我無法清楚地理解問題。爲什麼你不能重寫你的抽象方法? – Thihara
就我個人而言,我認爲你已經過分複雜化了。保持測試簡單。 – duffymo
而不是顯示一些不像你的真實用例,甚至沒有編譯的(愚蠢的)例子,爲什麼你不解釋你的真實用例是什麼,你想實現什麼? –