このような他の質問からは、反射を使用する必要があるようです。
Stub value of Build.VERSION.SDK_INT in Local Unit Test
How to mock a static final variable using JUnit, EasyMock or PowerMock
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"), 16);
このようにそれを使用します/後で嘲笑できるメソッドでフィールドをラップする
public interface BuildVersionAccessor {
int getSDK_INT();
}
、その後PowerMockitoを使用しながら、これは私のために動作するクラス/インタフェース
BuildVersionAccessor buildVersion = mock(BuildVersionAccessor.class);
when(buildVersion.getSDK_INT()).thenReturn(16);
http://stackoverflow.com/questions/38074224/stub-value-of-build-version-sdk-int-in-local-unitを入力することを忘れないでください。 - テスト – Nkosi
おそらく..? あなたはあまりにも激しくモックしようとしているようです。そのintを読み取るコード行のコードカバレッジを取得しようとしている場合、なぜですか? 異なるビルドで異なる動作をするようにシステムを設定しようとしている場合は、CANモックの何かの背後にある 'Build'に呼び出しをラップしてください。 –