我正在编写一个采用整数数组的代码,并且应该返回一个只有正整数的新数组。我编写了我的代码,但我不确定如何测试它,即初始化一个数组。这是代码
public static int [] getPositiveNumbers(int[] numbers)
{
int count = 0;
int [] result = new int[count];
for(int pos = 0; pos < numbers.length; pos++)
{
if(numbers[pos] > 0)
{
result[count] = numbers[pos];
count += 1;
}
}
return result;
}
}
现在我不完全确定代码是否正确,但我会测试它,所以我不需要反馈,除非我的代码中有某些内容会影响初始化。
我是否需要为此编写测试类?如果是这样,我将如何做到这一点?
答案 0 :(得分:0)
如果需要,您可以编写测试。测试只是为了提供帮助(保护您的代码,特别是测试业务,您还可以进行高级测试的集成测试)。所以这取决于你,按照你的需要。
对于您的功能内容,您可以尝试:
public static int[] getPositiveNumbers(int[] numbers) {
List<Integer> result = new ArrayList<>();
for(int n : numbers) {
if (n > 0) {
result.add(n);
}
}
int[] array = new int[result.size()];
for(int i = 0; i < result.size(); i++) array[i] = result.get(i);
return array;
}
这里是对这种方法的测试:
/**
* Test of getPositiveNumbers method
*/
@Test
public void testGetPositiveNumbers() {
System.out.println("getPositiveNumbers");
int[] numbers = {2, 3, -9, 4, -29, 50, -34, -32};
int[] expResult = {2,3,4,50};
int[] result = ToDelete.getPositiveNumbers(numbers);
assertArrayEquals(expResult, result);
}