TextUtils.isEmpty()方法为空字符串返回false

时间:2016-06-06 18:35:32

标签: android

我有以下测试,它返回false。我错过了什么吗?

TextUtils.isEmpty("")

更新:出于某种原因,我无法回答我的问题或添加评论。我正在运行JUNit测试用例而不是仪器测试用例。因为,我建议我发现当我们不作为Instrumentation运行时,上述方法返回的值不正确。     谢谢大家的帮助。我赞成了答案并正确评论。

2 个答案:

答案 0 :(得分:2)

对于空字符串,它应该返回true。 来自TextUtils的来源:

public static boolean isEmpty(@Nullable CharSequence str) {
    if (str == null || str.length() == 0)
        return true;
    else
        return false;
    }

在测试中尝试使用类似的东西:

   mockStatic(TextUtils.class);

    when(TextUtils.isEmpty(any(CharSequence.class))).thenAnswer(new Answer<Boolean>() {
        @Override
        public Boolean answer(InvocationOnMock invocation) throws Throwable {
            Object[] args = invocation.getArguments();
            String string = (String) args[0];
            return (string == null || string.length() == 0);
        }
    });

答案 1 :(得分:0)

如果您使用Kotlin,请改用isNullOrBlank()isNullOrEmpty()方法。您不需要任何模拟即可进行测试。