So che è strano, ma questo è quello che ho.JUnit4 TextUtils.isEmpty() restituisce risultati diversi da String.isEmpty()
Sto scrivendo uno unit test per verificare la mia logica per un'applicazione Android. Durante l'esecuzione di test, vedo che non riesce su quella linea:
if (!TextUtils.isEmpty(fromFile))
Prima che if
affermazione fromfile è uguale a ""
(stringa vuota), ma in qualche modo passa sopra e si rompe con un altro logica che doesn Prevedo una stringa vuota.
Immergersi nel debug Ho visto che fromFile.isEmpty()
restituisce il risultato corretto, ma TextUtils.isEmpty(fromFile)
dice che non è vuoto.
codice sorgente aperto, vedo:
public static boolean isEmpty(@Nullable CharSequence str) {
if (str == null || str.length() == 0)
return true;
else
return false;
}
e String.java:
public boolean isEmpty() {
return value.length == 0;
}
Ho seguito configutation: JDK 1.8.0_77
vorrei evitare tutta la logica nell'app per supportare String.isEmpty() solo per passare il test, dal momento che ho bisogno di supportare il codice prima dell'API Android 9, dove String.isEmpty
non è disponibile, e al quindi TextUtils.isEmpty()
fare di più. Qualsiasi aiuto con chiarimenti e suggerimenti sarebbe utile.
Qualcuno ha affrontato? Come dovrei risolverlo? Grazie in anticipo!
Ma è questo s una soluzione? Intendo per questo caso che hai solo TextUtils, ma cosa succede se usi SparsArrays e qualche altra implementazione di utility personalizzata fornita da Android? – karate
l'idea dei puri test di JUnit è che devono essere usati contro POJO (Plain Old Java Object). 'SparseArray 'non sono Old Java. Se ce l'hai, puoi andare su http://robolectric.org/, che è assolutamente soddisfacente secondo google https://developer.android.com/training/testing/fundamentals.html –