我正在嘗試編寫一個單元測試來驗證無法創建具有負值的某個對象的實例。單元測試旨在檢查特定故障,但即使預期的異常被拋出,它仍然失敗?
我的第一個測試工作正常,如預期 - 它應該通過。
我的第二個測試會按預期產生IllegalArgumentException,但是@Test(expected = IllegalArgumentException.class)不會像我期望的那樣吸收錯誤。事實上,測試似乎完全像@Test行根本沒有!
那麼我做錯了什麼?
package numbers;
import org.junit.Test;
import junit.framework.TestCase;
public class TestPositiveMoney extends TestCase {
public void testConstructFromLong() {
// Works OK
PositiveMoney x0 = new PositiveMoney(3L);
}
@Test(expected=IllegalArgumentException.class)
public void testConstructInvalid() {
// This statement is intended to fail
PositiveMoney x0 = new PositiveMoney(-3L); // Illegal
}
}
FYI,第二測試產生以下TB:
java.lang.IllegalArgumentException: Negative value -3 not allowed
at numbers.PositiveMoney.<init>(PositiveMoney.java:48)
at numbers.TestPositiveMoney.testConstructInvalid(TestPositiveMoney.java:13)
你似乎是混入juint 3和4級的版本。你使用哪個跑步者? – 2012-02-10 09:28:41