我創建了以下用於驗證羅馬數字轉換器的方法。 在JUnit中,測試通過但程序不會拋出任何異常。 我錯在哪裏?如何在Java中測試異常Junit
public void validateState(String number){
if(!number.matches("^M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})$"))
throw new IllegalArgumentException("Invalid number");
System.out.println("Invalid number");
}
測試:
@Test(expected = IllegalArgumentException.class)
public void test15() throws Exception {
new RomanNumber("").validateState("MMMMM");
}
謝謝你的幫助。
使用調試器找到它 – Jens
這可能是在你的REGEX,檢查你的正則表達式的有效性 – Adelin
小建議,一個字符串的變量名「數字」可能會導致潛在的混淆。 –