完整的解决方案,我得到了——
由于在 app/build.gradle 中设置了默认值,我得到了错误的返回值,TextUtils.isEmpty()
这不是我所期望的。
testOptions {
unitTests.returnDefaultValues = true
}
参考 - TextUtils.isEmpty(null) 返回 false
我无法更改 build.gradle 文件中的值,因此我只需要针对我的单元测试方法的解决方案。有一种方法可以为TextUtils.isEmpty()
方法提供实现并获取真正的返回值。
@Before
public void setup() {
PowerMockito.mockStatic(TextUtils.class);
PowerMockito.when(TextUtils.isEmpty(any(CharSequence.class))).thenAnswer(new Answer<Boolean>() {
@Override
public Boolean answer(InvocationOnMock invocation) throws Throwable {
CharSequence a = (CharSequence) invocation.getArguments()[0];
return !(a != null && a.length() > 0);
}
});
}
参考 - 需要帮助来使用 Mockito 和 JUnit4 编写单元测试
我遇到了同样的问题,android.graphics.Color.parseColor()
所以上述解决方案适用于android
包中的所有类。