【发布时间】:2016-06-03 20:27:36
【问题描述】:
我有一个理论问题。给定一个方法:
public int findSmallestArrayValue(int[] values){
int smallest = values[0];
for (int count = 0; count < values.length; count++){
if(values[count] < smallest){
smallest = values[count];
}
}
return smallest;
}
您可能会在这里进行哪些单元测试?到目前为止,我想出了:
assertEquals(array.findSmallestArrayValue(new int[]{5,11,3,6,8}),3);
assertEquals(array.findSmallestArrayValue(new int[]{5,5,5,5,5}),5);
assertEquals(array.findSmallestArrayValue(new int[]{-1,2,3,4,5}),-1);
现在我问自己,还有什么有用/可能的?例如我想出了:
- 大于 int 的值,但 Java 不允许我这样做?
- 空数组,怎么办?
- 用比 int 更多的值填充 int 数组?
特别是什么是真正有用的,什么不是?你怎么看?
【问题讨论】:
-
对于空数组,可以使用
new int[0]。我也会测试无效的可能性。 -
您没有正确处理空数组(或
null之一):它会引发异常。请记住,您无法测试所有内容,因此,您应该测试一些正常情况和限制情况(例如空数组)。然而,过度测试你的代码弊大于利,尤其是对于简单的函数 -
什么意思:assertNull(array.findSmallestArrayValue(new int[]{})); ?
-
面试题对吧?
-
是的。但是面试已经结束了,我只是很好奇如何做到这一点;-)
标签: java arrays unit-testing automated-tests