有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java 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(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);

共 (3) 个答案

  1. # 1 楼答案

    开始阅读documentation了解任何方法的用法。 如果您有兴趣了解它是如何实现的,我建议grepcode

  2. # 3 楼答案

    StringUtils。CommadeLimitedListToStringaray()的实现使得它不会返回null,当给定null字符串时,它会传回一个空数组

    例如:

    if (str == null) {
      return new String[0];
    }