2012-11-29 118 views
1

我正在使用org.jnuit.Assert類來測試業務邏輯的單元。驗證錯誤消息中的內容

如果在運行時出現特定情況,我的業務邏輯會拋出異常。一個特定的變量應該有非零值。

在我的catch塊中,我想驗證這個字符串消息:「變量var1應該有非零值」。

我想下面的代碼段將工作,

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() {} 

您的代碼應該按原樣工作。如果您使用匹配器,您將更好地瞭解爲什麼您的例外不包含您的消息:

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