2012-11-29 3 views
1

비즈니스 로직 테스트를 위해 org.jnuit.Assert 클래스를 사용하고 있습니다.오류 메시지 내용 확인

런타임에 특정 상황이 발생할 경우 비즈니스 로직에서 예외가 발생합니다. 특정 변수는 0이 아닌 값을 가져야합니다.

내 catch 블록에서 "Variable var1이 0이 아닌 값을 가져야합니다"라는 문자열 메시지를 확인하고 싶습니다.

나는 다음과 같은 코드가 작동

try{ 
    //business logic 
}catch(Exception e) { 
    CharSequence charseq = "Variable var1 should have a non-zero value"; 
    Assert.assertEquals("Variable var1 should have a non-zero value",true,e.getMessage().contains(charseq)); 
} 

생각하지만 그것은 작동하지 않습니다. 어떤 제안, 어떻게 이것을 달성 할 수 있습니까?

감사합니다, 비제이 Bhore

답변

1

보통은, 예외가 발생 주장 왜 메시지가 당신이 그것을 것 알고있는 문자열이 포함되어 있음을 주장하기에 충분하다? 당신과 같이 Junit와이 작업을 수행 할 수 있습니다

@Test(expected=MyException.class) 
public void test() {} 

코드는하지만 그대로 작동합니다. Matchers를 사용하면 메시지에 예외가 포함되지 않은 이유를 쉽게 알 수 있습니다.

Assert.assertThat(e.getMessage, contains("Variable var1...");