すでに抽象クラスでこのメソッドを使用するために、抽象メソッドを定義したいと思います。次に、この抽象メソッドを、抽象クラスを拡張するさまざまなクラスで定義してもらいたいと思います。
しかし、どうすればこれを行うことができますか?
(目標は、統合テストにいくつかの基本的な方法を提供することです。これらはすべて同じ「構造」を使用しますが、いくつかの異なるロジックを実装します)。
抽象クラスでパラメーターを使用して抽象メソッドを定義し、この抽象メソッドをすでに抽象クラスで使用し、テスト実装で最初にメソッドを実装するにはどうすればよいですか?
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
です。テストケースの実装ごとに異なるオブジェクトです。
私はこれにインターフェースを使用しないかもしれません。どうすればこれを可能にできますか?