Je sais que c'est bizarre, mais c'est ce que j'ai.JUnit4 TextUtils.isEmpty() donne un résultat différent de String.isEmpty()
J'écris un test unitaire pour vérifier ma logique pour une application Android. Au cours de l'exécution du test, je vois qu'il échoue sur cette ligne:
if (!TextUtils.isEmpty(fromFile))
Avant cette déclaration if
FROMFILE est égal à ""
(chaîne vide), mais en quelque sorte, il passe au-dessus et rompt avec une autre logique qui doesn Ne vous attendez pas à une chaîne vide. Plonger dans le débogage J'ai vu que fromFile.isEmpty()
renvoie le résultat correct, mais TextUtils.isEmpty(fromFile)
indique qu'il n'est pas vide.
code source libre, je vois:
public static boolean isEmpty(@Nullable CharSequence str) {
if (str == null || str.length() == 0)
return true;
else
return false;
}
et String.java:
public boolean isEmpty() {
return value.length == 0;
}
Je suit configutation: jdk 1.8.0_77
Je voudrais éviter toute logique dans l'application pour soutenir String.isEmpty() juste pour passer le test, car je dois supporter le code avant Android API 9, où String.isEmpty
n'est pas disponible, et al donc TextUtils.isEmpty()
faire plus. Toute aide avec des éclaircissements et des suggestions serait utile.
Quelqu'un at-il fait face? Comment devrais-je le réparer? Merci d'avance!
Mais est-ce s une solution? Je veux dire pour ce cas que vous avez seulement TextUtils, mais que se passe-t-il si vous utilisez SparsArrays et une autre implémentation utilitaire personnalisée fournie par Android? – karate
l'idée des tests purs JUnit est qu'ils doivent être utilisés contre POJO (Plain Old Java Object). 'SparseArrays' ne sont pas Old Java. Si vous l'avez, vous pouvez aller avec http://robolectric.org/, ce qui est totalement bien selon google https://developer.android.com/training/testing/fundamentals.html –