首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对于空字符串,TextUtils.isEmpty()方法返回false

对于空字符串,TextUtils.isEmpty()方法返回false
EN

Stack Overflow用户
提问于 2016-06-07 02:35:32
回答 2查看 4.4K关注 0票数 8

我有下面的测试,它返回false。我是不是遗漏了什么?

代码语言:javascript
复制
TextUtils.isEmpty("")

更新:由于某些原因,我无法回答我的问题或添加评论。我运行的是JUNit测试用例,而不是插装测试用例。正如我所建议的那样,我发现当我们不作为Instrumentation运行时,上面的方法返回不正确的值。感谢每一个人的帮助。我已经对答案和正确的评论进行了提升。

EN

回答 2

Stack Overflow用户

发布于 2016-06-07 03:01:19

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

代码语言:javascript
复制
public static boolean isEmpty(@Nullable CharSequence str) {
    if (str == null || str.length() == 0)
        return true;
    else
        return false;
    }

在测试中,尝试使用以下内容:

代码语言:javascript
复制
   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);
        }
    });
票数 4
EN

Stack Overflow用户

发布于 2019-03-13 18:37:10

如果您使用的是Kotlin,请改用isNullOrBlank()isNullOrEmpty()方法。你不需要为测试做任何模拟。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37664553

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档