【发布时间】:2016-12-07 16:59:37
【问题描述】:
我创建了以下用于验证罗马数字转换器的方法。 在 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");
}
感谢您的帮助。
【问题讨论】:
-
使用调试器找出来
-
它可能在你的正则表达式中,检查你正则表达式的有效性
-
小建议,一个字符串变量名“number”可能会导致潜在的混淆。
-
测试按预期运行:如果抛出异常,则测试通过。 demo
标签: java class junit illegalargumentexception roman-numerals