我知道這很奇怪,但這就是我所擁有的。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 –