junit 测试返回类型为 int 且参数为 arraylist 的方法

问题描述

以下方法检查具有给定值/总和的所有三元组。我想为此方法编写一个@Test 方法,该方法返回一个整数并接受一个数组列表和一个变量作为参数。有没有办法可以为以下代码编写junit5测试-

int triplets(ArrayList<Integer> a,int sum)
{
    int l,r;
    int count = 0;

    for (int i = 0; i < a.size() - 2; i++) {

        l = i + 1;
        r = a.size() - 1;
        while (l < r) {
            if ( a.get(i) + a.get(l) + a.get(r) == sum) {
                count++;
                System.out.print("Triplet " + count +" is " + a.get(i) + "," + a.get(l) + "," + a.get(r) + "\n");
                L++;
                r--;
            }
            else if (a.get(i) + a.get(l) + a.get(r) < sum)
                L++;

            else // arr.get(i) + arr.get(l) + arr.get(r) > sum
                r--;
        }
    }
    if(count!=0)
    {
        System.out.print("Total triplets present: " + count);
        return 1;
    }
    else
        return -1;
}

解决方法

在 JUnit5 中,您可以为此使用带有 MethodSource 的 ParameterizedTest。

[(7,7,57,192),(7,52,192)]