2014-11-06 130 views
2

我參考了以下鏈接 - http://www.mkyong.com/unittest/testng-tutorial-2-expected-exception-test/以使用TestNG測試異常。如何打印來自調用方法的消息?對於例如,當orderBo.save(null);叫,我怎麼打印 -​​使用TestNG進行異常處理

+1

不明白你的意思;你想測試預期異常的錯誤信息的內容嗎? – fge 2014-11-06 20:20:19

+0

是的,這是正確的。這正是我想要的。 – rickygrimes 2014-11-06 20:23:30

+0

@fge - 你能建議嗎? – rickygrimes 2014-11-06 20:27:19

回答

4

可以使用,沿着expectedExceptions參數到@Test批註,則expectedExceptionsMessageRegEx。然而,這變得相當凌亂註釋:

@Test(
    expectedExceptions = MyException.class, 
    expectedExceptionsMessageRegEx = "^regex for message here$" 
) 
public void testWhatever() 
{ 
    codeThatRaisesSomeException(); 
} 

,並注意參數值,作爲參數顧名思義,是一個正則表達式...

而不是,爲什麼不只是這樣做:

@Test 
public void testWhatever() 
{ 
    try { 
     codeThatRaisesSomeException(); 
     fail("No exception thrown!"); 
    catch (MyException e) { 
     assertEquals(e.getMessage(), "the expected message here"); 
    } 
} 

最終,這是一個口味問題;你真的發現後者更可讀...

+0

非常感謝。 – rickygrimes 2014-11-06 20:35:30