2012-04-05 63 views
0

你能告訴我,如果有辦法解決和啓用junit.framework.Assert命令內聯忽略它們?有沒有一種方法可以內聯斷言/啓用斷言?

代碼例子只是爲了說明我的意思:

junitOff(); // first method I need help with 
assertTrue(false); //would normally cause an AssertionError 
junitOn(); // second method I need help with 
System.out.println("Broke through asserTrue without Error") 

我知道這將有可能使用try/catch語句,但是這不是我要找的,因爲我不能在執行下去行後斷言...

+4

評論此行? – assylias 2012-04-05 09:24:57

+3

打開命令被稱爲'/ *'關閉一個'* /' - 奇怪的命名約定,但是哦.. – Voo 2012-04-05 09:33:22

+0

對不起,我試圖改進代碼示例,包括當然的命名約定! – 2012-04-05 09:46:33

回答

0

我沒有看到任何方式來做到這一點。看着你看到了JUnit代碼:

static public void assertTrue(String message, boolean condition) { 
    if (!condition) 
     fail(message); 
} 

而且fail()是:

static public void fail(String message) { 
    throw new AssertionError(message == null ? "" : message); 
} 

我看不出有任何的方式來接通開關或以其他方式拋出AssertionError禁用它。

有關記錄,如果您正在討論關於Java原語的assert,那麼可以禁用它,但只能在編譯時使用-ea開關。