JUnit4 TextUtils.isEmpty() дает другой результат, чем String.isEmpty()JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 JUnit4 TextUtils.isEmpty() дает другой результат, чем String.isEmpty()

Сообщение Anonymous »

Я знаю, это странно, но у меня именно это.

[img]https://i.sstatic .net/2a9zK.png[/img]


Я пишу модульный тест, чтобы проверить свою логику для приложения 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;
}
У меня следующая конфигурация:
jdk 1.8.0_77

Я бы хотел избежать всей логики в приложении для поддержки String.isEmpty() просто для прохождения теста, поскольку мне нужно поддерживать код до Android API 9, где String.isEmpty недоступен, а также TextUtils.isEmpty() делать подробнее.
Любая помощь с разъяснениями и предложениями будет полезна.

Кто-нибудь сталкивался с этим? Как мне это исправить? Заранее спасибо!

Подробнее здесь: https://stackoverflow.com/questions/368 ... ng-isempty
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»