2016-08-19 8 views
0

staticメソッドを追加しました。SourceClassクラスに追加しました.JUnitテストでaddメソッドの機能をオーバーライドしたいと思います。 例:Junitテストで静的メソッドをオーバーライドする方法は?

public class SourceClass { 
    protected static int add(int a, int b){ 
     //Do something 
    } 
} 

このSourceClassにはコンストラクタがありません。 JUnitのクラス:

public class TestClass 
{ 
public void addTest() 
    { 
    //Trying to Override the add method here. 
    } 
} 

私は@Overrideを使用しています、それが機能していません。 誰かが私に示唆することができます、どのようにこれを達成することができますか?

注:テストクラスで@PrepareForTestを使用しないでください。

+0

どのJavaのバージョンを使用していますか? – ByeBye

+1

クラスを拡張しない場合、メソッドをオーバーライドすることはできません。私はあなたの所持品を理解しているので、あなたはこの方法を模倣したい男性です – Jens

+3

この文脈では、オーバーライドは意味をなさない。あなたは実際に何を達成しようとしていますか? – Gray

答えて

0

なぜあなたは必要ですか?静的メソッドは直接使用されるはずです。また、静的メソッドの場合、オブジェクトを作成する必要はありません。 addメソッドが保護されているように、私は

public class TestClass 
{ 
@Test 
public void addTest() 
    { 
    assertEquals(SourceClass.add(2,5),7); 
    } 
} 
0

、あなたがソースのためだとして、あなたがテストのために、同じパッケージ構造を以下していると仮定あなたは、静的メソッドをオーバーライドすることができますが、あなたはそれのためにRTTIを持っていません。だから、あなたはオーバーライドから多くの利益を得ることはありません。

ただし、コメント内で誰かが言ったように、メソッドを含むクラスを拡張するときにのみメソッドをオーバーライドします。

関連する問題