Java JUnit测试-断言逻辑

Java JUnit测试-断言逻辑,java,spring,junit,Java,Spring,Junit,我使用JUnit 4测试这个简单的代码块: import java.util.StringTokenizer; import org.springframework.util.StringUtils; import junit.framework.TestCase; public class StringUtilsTestSuite extends TestCase { public StringUtilsTestSuite(String name) { super

我使用JUnit 4测试这个简单的代码块:

import java.util.StringTokenizer;
import org.springframework.util.StringUtils;
import junit.framework.TestCase;


public class StringUtilsTestSuite extends TestCase {

    public StringUtilsTestSuite(String name) {
        super(name);
    }

    public void testCommaDelimitedListToStringArrayNullProducesEmptyArray(){
        String[] sa = StringUtils.commaDelimitedListToStringArray(null);
        assertTrue("String array isn't null with null input", sa != null);
        assertTrue("String array length == 0 with null input", sa.length == 0);
    }


}
测试运行时没有错误。我的问题是为什么第一个断言成功通过,我无法理解前面代码背后的逻辑:

String[] sa = StringUtils.commaDelimitedListToStringArray(null);

实现StringUtils.commaDelimitedListToStringArray()时,它不会返回null,当给定null字符串时,它会传回一个空数组

例如:


从官方StringUtils文件中-

Returns:
an array of strings, or the empty array in case of empty input
在您的示例中,
sa[]
现在为空,但不是null,这就是它通过第一个断言测试的原因

从读取开始了解任何方法的使用情况。 如果您有兴趣了解它是如何实现的,我建议

Returns:
an array of strings, or the empty array in case of empty input