我知道这很奇怪,但这就是我所拥有的。
我正在编写一个单元测试来检查我的Android应用程序的逻辑。在测试执行过程中,我发现它在以下行上失败:if (!TextUtils.isEmpty(fromFile))
在这个if语句之前,fromFile等于""(空字符串),但不知何故它通过了这个if语句并且在不期望空字符串的另一个逻辑中出现错误。
通过调试,我发现fromFile.isEmpty()返回正确的结果,但是TextUtils.isEmpty(fromFile)却说它不为空。
查看开源代码,我看到:
public static boolean isEmpty(@Nullable CharSequence str) {
if (str == null || str.length() == 0)
return true;
else
return false;
}
和 String.java:
public boolean isEmpty() {
return value.length == 0;
}
我有以下配置: jdk 1.8.0_77
我想避免在应用程序中实现整个逻辑以支持String.isEmpty(),仅为了通过测试,因为我需要支持Android API 9之前的代码,其中String.isEmpty不可用,并且TextUtils.isEmpty()执行更多操作。 任何关于澄清和建议的帮助都将是有益的。
有人面临过这个问题吗?我该如何解决它?提前致谢!
SparseArrays
不是旧Java。如果您有它,可以使用http://robolectric.org/,这在谷歌https://developer.android.com/training/testing/fundamentals.html上完全可以接受。 - Roger Alien