2017-12-20 15 views
0

方法ためsomeMethod1をユニットテストケースを書いている間は、私が法(someMethod2)が呼び出されたとき抽象例外AnalysisException)がスローされていることを確認しようとしているユースケースを持っています。テスト対象クラスはJdbcTemplateSampleImplです。Powermockで抽象的な例外をスローするためにvoidのprivateメソッドをモックする方法はありますか?

public class JdbcTemplateSampleImpl { 

    public void someMethod1() { 
     someMethod2(); 
    } 

    private void someMethod2() throws AnalysisException { 
    // some code here 
    } 
} 

私はこの

@Test(expected = com.test.AnalysisException.class) 
public void abstractClassExceptionCheck2Test1() throws Throwable { 
    JdbcTemplateSampleImpl jdbcTemplateSampleImpl1 = 
       PowerMockito.spy(jdbcTemplateSampleImpl0); 
    PowerMockito.doThrow(mock(AnalysisException.class)). 
      when(jdbcTemplateSampleImpl1,"classCheck2");  
    jdbcTemplateSampleImpl1.abstractClassExceptionCheck2(); 
} 

のようにやってPowerMockitoを使用しています。しかし、テストケースを実行している間、私はこの

のjava.lang.Exceptionのようなエラーを取得しています。予期しません例外、予期された "com.test.AnalysisException"でしたが、 "java.lang.NullPointerException"でした

+0

「NullPointerException」のスタックトレースを表示できますか?おそらく 'classCheck2'によって投げられないかもしれません。 –

答えて

0

doThrowメソッド呼び出しの外で例外をモックします。

AnalysisException e = mock(AnalysisException.class); 
PowerMockito.doThrow(e). 
     when(jdbcTemplateSampleImpl1,"classCheck2"); 
+0

Stiiそれは同じ例外を投げている、 –

関連する問題