为什么我无法在JAVA中进行空案例测试?

时间:2018-10-08 13:44:15

标签: java arrays isnullorempty

编辑:问题已解决,谢谢。还要感谢您提供其他提示!

我正在CodeWars中使用“ Snail”(使用JAVA)制作4kyu kata。一切正常,所有测试都通过了,而不是一个空的测试。

此测试的日志显示:

[[]] should be sorted to []

所以我想,“如果一个数组为空,我也应该返回一个空数组”。

下面,我介绍我的方法的开始:

public static int[] snail(int[][] array) { 
    if ((array.length==0)) {
        int[] result  = new int[0]; 
        return result;
    }      

    if ((array==null)) {
        int[] result  = null;
        return result;
    }

我还试图在两种情况下都返回null,然后在两种情况下都试图返回空数组...

有什么想法可以通过此空箱测试吗?

3 个答案:

答案 0 :(得分:0)

我认为外部数组包含内部数组,所以它的长度等于1-是吗?内部数组不包含任何内容,因此应检查其中一个。

答案 1 :(得分:0)

您的第一个if条件的计算结果为true iff 该方法用一个初始化为new int[0][]的数组调用-其中array.length0。测试日志告诉您考虑以下情况,其中array.length1,而array[0].length0,例如有人初始化并分配了

这样的数组
int[][] array = new int[1][];
array[0] = new int[0];

仅出于可读性考虑-您的if条件每个都有一对额外的括号。

答案 2 :(得分:0)

确定代码中问题的步骤:

  1. 阅读说明。
  2. 认识到[]不是null
  3. 查看您的代码; 请注意,当输入为空时,您将返回null。
  4. 接受[]不是null
  5. 当输入为空时返回并清空数组。
  6. 了解array.length为空时,保证array会引发NullPointerException。
  7. 在尝试取消引用null参数之前测试array