2016-05-30 28 views
1

次の例外をテストしようとしていますが、メソッドの内部例外であるため、JUnitから例外をスローする方法がわかりません。JUnit例外処理テスト

public boolean suscribirADato(int idDato) { 
     InetAddress ip = null; 
     boolean adecuadamenteSuscrito = false; 

     try { 
      ip = InetAddress.getByName(ipMulticast.get(idDato)); 
      grupoMulticast.set(idDato, ip); 
      conexion.joinGroup(grupoMulticast.get(idDato)); 
      adecuadamenteSuscrito = true; 
     } catch (IOException e) { 
      LOGGER.info(e.getMessage()); 
     } 
     return adecuadamenteSuscrito; 
    } 
+1

mockitoのような模擬フレームワークを使用すると、手動で例外をスローすることができます。参照してください:http://2min2code.com/articles/mockito_intro/stubbing_method_throw_exception –

+0

'try'ブロック内でメソッド呼び出しの1つをモックする必要があるように聞こえます。 – vikingsteve

+0

どのような状況でスローされますか? – Raedwald

答えて

1

他の人は、モックフレームワークを使用すると答えました。

しかし、あなたの質問の私の理解は以下の通りです:

私は方法の 内部例外あるので、JUnitのからの例外をスローする方法がわかりません。私が理解

あなたはユニットテストの例外がスローされ、は、メソッド内をキャッチしようとしているということでしょうか?

おそらく、あなたの方法は2つ以上の方法に分かれていて、別々にテストすることができますか?

あなたのコードのサンプルから、例外がスローされたときに実行されるロジックは、あなたはまた、モックLOGGERに選択して、情報が呼び出されたときにトレースを保つこと

LOGGER.info(e.getMessage()); 

です。次に、LOGGER.infoが実際に呼び出されたと主張することができます(正しく理解していれば、それがあります)。

1

あなたはMockitoフレームワークを調べる必要があります。 http://mockito.org/ when(myMockedObject.routine(anyParameter()))。thenThrow(new NullPointerException());