2017-12-20 3 views
0

방법 에 대한 someMethod1을 단위 테스트 케이스를 작성하는 동안, 나는 내가 방법 (someMethod2)가 호출 될 때 추상적 예외 (AnalysisException)이 발생되어 있는지 확인하기 위해 노력하고있어 사용 사례가 있습니다. 테스트중인 클래스는 입니다. JdbcTemplateSampleImpl입니다.Powermock을 사용하여 추상 예외를 발생시키는 void 개인 메서드를 조롱하는 방법?

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 그것은 같은 예외를 던지고있다. –

관련 문제