[英]Cause a TestNG test to fail?
是assert(false);
導致測試失敗的可接受方式?
另外,如果在嘗試訪問類的私有方法時拋出NoSuchMethodException或SecurityException ,我是否應該甚至導致TestNG測試失敗,還是只打印異常的堆棧跟蹤信息?
@Test
public void getLevelTest() {
try {
menu.getClass().getDeclaredMethod("getLevel",int.class,String.class);
} catch (NoSuchMethodException | SecurityException e) {
assert(false);
}
}
在TestNG框架中處理預期異常的另一種方法是:
@Test(expectedExceptions = {NoSuchMethodException.class, SecurityException.class})
如果用此注釋的測試遇到任何異常,則將其視為通過。
在這種情況下,使用assert(false)
意味着您將丟失有關拋出異常的信息。 TestNG不知道異常與測試失敗有關。
您無需聲明任何內容或捕獲任何內容:
@Test
public void getLevelTest() throws Exception {
menu.getClass().getDeclaredMethod("getLevel",int.class,String.class);
}
測試框架將捕獲異常並在測試結果中打印堆棧跟蹤。
使用assertTrue()
和assertFalse()
,另請參見此topis的舊答案 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.