这可能不是问这个问题的正确位置。但是,几个月前,我刚刚被聘为大学的一名学生开发人员,这是我的第一份编程工作,我已经不得不编写一些单元测试。在被录用之前,我有机会与另一位不需要进行单元测试的开发人员进行交谈。他证明了这一点:如果您在某个方法上抛出数据,那么我应该知道无需编写测试就可以得出的结果。我认为这是有道理的。
例如(Java):
public int Add(int num1, int num2) {
return(num1 + num2);
}
//if I call Add(2,2) I know I should get 4,
//if I call Add(5,6) I know I should get 11,
//etc...
我试图向我的同事问这个问题,他的回应或多或少地遵循了其他人的做法,所以我们必须这样做。
因此,我想我的问题是:如果仅通过使用伪数据重复调用代码而不是使用单元测试一次来测试代码,为什么必须进行单元测试?
答案 0 :(得分:1)
单元测试是在易于管理和运行的框架中的特定书面测试,该框架通过使用“虚拟数据”调用代码来工作。当然,一个好的测试也会打到各种边缘情况。
只是为了好玩,让我们来看一下代码:
如果我将INT_MAX
(不确定Java的等效语言,但也许是Integer.MAX_VALUE
)作为num1
传递给您的代码并说10作为num2
会发生什么。它会返回INT_MAX + 10
还是其他?如果这样做,是错误条件还是预期的?单元测试也可以使这些问题形式化。