初始化数组 - Public Static int []

时间:2016-03-10 00:04:59

标签: java arrays eclipse

我正在编写一个采用整数数组的代码,并且应该返回一个只有正整数的新数组。我编写了我的代码,但我不确定如何测试它,即初始化一个数组。这是代码

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;
}

}

现在我不完全确定代码是否正确,但我会测试它,所以我不需要反馈,除非我的代码中有某些内容会影响初始化。

我是否需要为此编写测试类?如果是这样,我将如何做到这一点?

1 个答案:

答案 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);
}