Junit-如何测试参数的无效使用

时间:2014-09-30 09:07:35

标签: java testing methods junit parameters

我应该为无效使用正确参数编写Junit测试。我对这个概念感到有点困惑。有人可以帮助解释这个场景是什么,以及如何用一个例子来解决这个问题?

我正在测试一种将客户和一种服务作为参数的方法。我已经尝试了下面的assertFalse方法,并试图将两个客户传递给

assertFalse("Registration fails for add two services to one customer", cs.addPeople("Jack", "Jill","Cleaning"));

我意识到这不是正确的方法,因为add.People()方法只需要一个人作为参数。在这种情况下,我们如何测试无效使用?非常感谢!

1 个答案:

答案 0 :(得分:2)

通过测试参数的无效使用,我猜你的意思是写有无效参数的场景。 例如。 假设你有一个方法:

public Integer toInteger(String input){
   //conversion logic
}

现在,您可能想知道您的方法在不同场景中的行为方式。 一种情况是传递无效参数,例如null,并查看您的方法的行为。

@Test
public void testToIntegerForNullParam(){
   myClass.toInteger(null);
}

如果您没有处理null检查,则此方法将无法通过,您将不得不重构以通过此测试。

public Integer toInteger(String input){
   if(input == null){
      throw new IllegalArgumentException("Argument was null!"); 
    }
    //conversion logic
}

然后在测试中,您可以测试当参数为null时确实是否会抛出异常。您可以使用expected = IllegalArgumentException.class

@Test(expected = IllegalArgumentException.class)
public void testToIntegerForNullParam(){
    myClass.toInteger(null);
}

您可以继续添加更多方案,例如字符串不是数字等。