@Test
public void testSomething(){
try{
//調用被測試接口
……
//驗證調用結果
AssertEquals(expect, actual)
}catch(SomeException e){
……
}
}
public void testSomething(){
try{
//調用被測試接口
……
//驗證調用結果
AssertEquals(expect, actual)
}catch(SomeException e){
……
}
}
這段代碼如果運行之后是綠條,是否表明該用例成功了呢?答案顯然不是,為什么呢?因為在調用被測接口的時候我們會捕獲異常,如果在調用被測接口時拋出了異常,而這個異常恰好是我們要捕獲的異常,那么后面的AssertEquals(expect, actual)語句根本就不會運行到,而是直接跳轉到catch塊中去了,這樣就不會做任何的驗證了,也就不會有驗證失敗,當然Junit會認為這次測試是成功的,但實際上卻不是這樣的。要避免這樣的錯誤也比較容易,只需要把驗證的語句從try塊中拿出來,放在try的后面就可以了,這樣不管try塊里面的運行情況是怎么樣的,驗證語句總能夠運行到。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/