Я использую в своем проекте Dagger2, KeyStoreKeyGenerator (из in.co.ophio.secure), и я хочу использовать Robolectric для проверки моего фрагмента.Robolectric KeyStoreKeyGenerator
Я вставляю презентатор в свой фрагмент. Презентатор вводит userPrefs. UserPrefs имеют KeyStoreKeyGenerator реализованы
class UserPreferences(val application: App) : UserPreferencesAPI {
// another methods and fields
private val keyGenerator = KeyStoreKeyGenerator.get(application, application.packageName)
}
это мой ведущий
class MainPresenter(...,
val sharedPreference: UserPreferencesAPI)
и это мой тест
private MainFragment fragment;
private MainActivity activity;
@Before
public void setUp() {
activity = Robolectric.buildActivity(MainActivity.class).create().start().resume().get();
fragment = MainFragment.Companion.newInstance();
}
@Test
public void shouldBeNotNull() {
Assertions.assertThat(activity).isNotNull();
}
После запуска теста я вижу:
java.lang.NullPointerException
at android.security.KeyStore.isHardwareBacked(KeyStore.java:318)
at android.security.KeyChain.isBoundKeyAlgorithm(KeyChain.java:397)
at in.co.ophio.secure.core.KeyStoreKeyGenerator.<init>(KeyStoreKeyGenerator.java:41)
at in.co.ophio.secure.core.KeyStoreKeyGenerator.get(KeyStoreKeyGenerator.java:56)
at unofficial.coderoid.wykop.newapp.utils.UserPreferences.<init>(UserPreferences.kt:24)
Должен ли я создать shadow KeyStoreKeyGenerator? Должен ли я класть класс KeyStore с помощью интерфейса?