我应该为无效使用正确参数编写Junit测试。我对这个概念感到有点困惑。有人可以帮助解释这个场景是什么,以及如何用一个例子来解决这个问题?
我正在测试一种将客户和一种服务作为参数的方法。我已经尝试了下面的assertFalse
方法,并试图将两个客户传递给
assertFalse("Registration fails for add two services to one customer", cs.addPeople("Jack", "Jill","Cleaning"));
我意识到这不是正确的方法,因为add.People()
方法只需要一个人作为参数。在这种情况下,我们如何测试无效使用?非常感谢!
答案 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);
}
您可以继续添加更多方案,例如字符串不是数字等。