java - 测试 JUnit 中方法的合法和非法参数

标签 java junit junit4

如果我想测试输入是否有效,我该如何使用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/

相关文章:

java - 使用错误的小数分隔符在 Android 中格式化货币

java - 泛型声明类型解释

java - 如何为CDI编写Junit测试用例?

JAVA:JUnitTest,抛出两个异常的测试方法

java - Junit4 和 TestNG 在与 Maven 的一个项目中

java - spring retry setRetryableExceptions, setFatalExceptions 不可用

java - 在 xml 中自动生成 JUnit 结果的最佳方法是什么?

java - 运行单元测试时对 assertEquals 的引用不明确

java - 如何在 Espresso 测试中测试 word style "ITALIC"

java - SecurityConfig 2 不同角色的成功 url