我有下面的测试返回假。我想念什么吗?
TextUtils.isEmpty("")
更新:由于某种原因,我无法回答我的问题或添加评论。我正在运行JUNit测试用例,而不是仪器测试用例。正如建议的那样,我发现当我们不作为工具运行时,上述方法返回的值不正确。
谢谢大家的帮助。我已对答案和正确的评论进行了投票。
最佳答案
对于空字符串,它应该返回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);
}
});