我想知道是否仍然存在Build.Version.SDK_INT的值?假设我在ClassUnderTest中有以下行:
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
- //do work
- }else{
- //do another work
- }
我怎样才能涵盖所有代码?
我的意思是我想用不同的SDK_INT运行两个测试来输入两个块.
是否有可能在使用Mockito / PowerMockito的Android本地单元测试中?
谢谢
解决方法
使用反射更改值.
- static void setFinalStatic(Field field,Object newValue) throws Exception {
- field.setAccessible(true);
- Field modifiersField = Field.class.getDeclaredField("modifiers");
- modifiersField.setAccessible(true);
- modifiersField.setInt(field,field.getModifiers() & ~Modifier.FINAL);
- field.set(null,newValue);
- }
然后
- setFinalStatic(Build.VERSION.class.getField("SDK_INT"),123);
经过测试.作品.