1

コード:

 ClassBase {
    protected method1() {

     protected methodA (par1, par2){

     ... } }

  };
 ClassA  extends ClassBase {
   @Override
     protected methodA (par1, par2){
       .....
       };   
  };

後:

ClassA testClass=new ClassA();
 testClass.methodA();            

メソッドmethodAを実行しているときに、子孫クラスAのmethodAが呼び出されたかどうかをテストすることは可能ですか(junitの場合もあります)。ありがとう。

4

1 に答える 1

1

テストするものは何もありません。ClassA オブジェクトがあり (これは簡単にテストできます)、それに対して methodA を呼び出すと、ClassA からのオーバーライド メソッドが確実に呼び出されます。これは Java 言語の保証です。ClassA オブジェクトをそのスーパー クラスにキャストした場合でも保証されます。

これをテストする場合は、オーバーライド アノテーションを使用して、ClassA のメソッドを実際にオーバーライドすることを確認できます。または、特定の結果をテストできます。オーバーライドするメソッドは、おそらく上書きされたメソッドとは異なることを行っています (両方のメソッドが同じことを行う場合、それを上書きしても意味がありません)。その違いをテストします。

于 2012-05-08T07:47:25.637 に答える