用于连接的数组的JUnit测试用例

时间:2019-07-12 08:14:49

标签: java junit

这是数组代码的串联,我尝试为其编写junit测试用例,但给出语法错误。我不确定确切的语法是什么。

public static String[] concatArray(String[] firstArry, String[] secArry) {
        if (null != firstArry && null == secArry) {
            return firstArry;
        } else if (null == firstArry && null != secArry) {
            return secArry;
        } else if( null != firstArry && null != secArry ){
            String[] concatArry = new String[firstArry.length + secArry.length];
            System.arraycopy(firstArry, 0, concatArry, 0, firstArry.length);
            System.arraycopy(secArry, 0, concatArry, firstArry.length, secArry.length);
            return concatArry;
        }else{
            return null;
        }

JUnit测试用例。

@Test
    public void testConcatArray() {
        String[] arr1 = {"nodename", "nodecategory"};
        String[] arr2 = {" test"," case"};

        Assert.assertEquals({"abc"}, StringUtils.concatArray(arr1, arr2));
    }

Error

2 个答案:

答案 0 :(得分:0)

编译器不知道第一个参数的实际类型是什么。

您需要将以下allong与其他断言一起使用:

Assert.assertArrayEquals(new String[]{"abc"}, StringUtils.concatArray(arr1, arr2));

答案 1 :(得分:0)

您可以使用assertArrayEquals()方法声明数组。

请参阅:Using assertArrayEquals in unit tests

也许您想看一下Java Stream API afaik,它也可以处理null数组的串联,因此您不必关心null处理。 例如如果您有数组['abc']null,则流concat将返回['abc']。 (但也许您需要在我不确定100%之前进行过滤:yourStream.filter(array -> array != null)

看看这个,以更好地理解我的意思:

https://www.concretepage.com/java/jdk-8/java-8-concat-streams-lists-sets-arrays-example