我知道这很奇怪,但这就是我所拥有的。JUnit4 TextUtils.isEmpty()给出的结果不是String.isEmpty()
我正在写一个单元测试来检查我的逻辑,一个Android应用程序。在测试过程中执行,我看它未能在该行:
if (!TextUtils.isEmpty(fromFile))
是if
声明FROMFILE是之前等于""
(空字符串),但不知何故,经过它和休息与没有按另一种逻辑预计空弦。
潜入调试我看到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;
}
我有以下configutation: JDK 1.8.0_77
我想避免整个应用程序中的逻辑支持String.isEmpty()只是为了通过测试,因为我需要在Android API 9之前支持代码,其中String.isEmpty
不可用,而al所以TextUtils.isEmpty()
做得更多。 任何帮助澄清和建议将有所帮助。
有没有人遇到过它?我应该如何解决它?提前致谢!
但是,是一个解决方案?我的意思是,这种情况下你只有TextUtils,但是如果你使用SparsArrays和Android提供的其他一些自定义实用程序实现呢? – karate
纯JUnit测试的想法是,它们必须用于反对POJO(Plain Old Java Object)。 'SparseArrays'不是旧的Java。如果你有它,你可以去http://robolectric.org/,根据google https://developer.android.com/training/testing/fundamentals.html –