如果我想测试输入是否有效,我该如何使用JUnit4来测试该方法是否处理了非法输入/参数?
要调用setAge()
方法,参数必须是整数而不是字符或字符串。
@Test
public void testWHetherInputValid() {
Person p = new Person();
String s = "abc";
p.setAge(s); // but actually, the correct input must be an integer
}
最佳答案
如果 setAge
接收到一个 int
,编写一个将 String
传递给它的测试是没有意义的——这样的调用不会甚至编译。
测试用于捕获编译器无法检测到的运行时错误。例如,假设 Person
的年龄必须是正整数。例如,传递 -1
应该会导致函数抛出 IllegalArgumentException
- 这可以通过在 @Test
中指定预期的异常来测试注释:
@Test(expected = IllegalArgumentException.class)
public void testWHetherInputValid() {
Person p = new Person();
int invalidAge = -1;
p.setAge(invalidAge);
}
关于java - 测试 JUnit 中方法的合法和非法参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27807898/