我正在使用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);
答案 0 :(得分:1)
实现StringUtils.commaDelimitedListToStringArray()以便它不返回null,当给定空字符串时,它会传回一个空数组。
例如:
{{1}}
答案 1 :(得分:1)
从官方的StringUtils文档 -
Returns:
an array of strings, or the empty array in case of empty input
在您的示例中,sa[]
现在为空,但不为空,这就是它通过第一个断言测试的原因。
答案 2 :(得分:0)
首先阅读documentation以了解任何方法用法。 如果您有兴趣了解它是如何实现的,我建议grepcode。