我想定义一个抽象方法,以便在我的抽象类中使用这个方法。然后,我想在扩展我的抽象类的不同类中定义这个抽象方法。
但我怎么能这样做呢?
(目标是为集成测试提供一些基本方法,它们都使用相同的“结构”,但实现一些不同的逻辑)。
如何在抽象类中定义一个带参数的抽象方法,在抽象类中已经使用这个抽象方法,但在我的测试实现中首先实现该方法?
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
不同的测试用例实现是不同的对象。
我可能不会为此使用接口。我怎样才能做到这一点?