如果我想测试输入是否有效,我如何使用JUnit4来测试该方法是否处理非法输入/参数?
要调用setAge()方法,参数必须是整数而不是char或string.
@Test
public void testWHetherInputValid() {
Person p = new Person();
String s = "abc";
p.setAge(s); // but actually, the correct input must be an integer
}
Run Code Online (Sandbox Code Playgroud)
如果setAge接收到int,那么编写一个将传递String给它的测试没有意义- 这样的调用甚至不会编译.
测试用于捕获编译器无法检测的运行时错误.例如,假设a Person的年龄必须是正整数.-1例如,传递应该导致函数抛出IllegalArgumentException- 可以通过在@Test注释中指定预期的异常来测试:
@Test(expected = IllegalArgumentException.class)
public void testWHetherInputValid() {
Person p = new Person();
int invalidAge = -1;
p.setAge(invalidAge);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1637 次 |
| 最近记录: |