首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Robolectric KeyStoreKeyGenerator

Robolectric KeyStoreKeyGenerator
EN

Stack Overflow用户
提问于 2016-10-22 20:41:14
回答 1查看 497关注 0票数 3

我在我的项目中使用了Dagger2,KeyStoreKeyGenerator (来自in.co.ophio.secure),并且我想使用Robolectric来测试我的片段。

我将presenter注入到我的片段中。演示者注入了userPrefs。UserPrefs实现了KeyStoreKeyGenerator

代码语言:javascript
复制
class UserPreferences(val application: App) : UserPreferencesAPI {
// another methods and fields
    private val keyGenerator = KeyStoreKeyGenerator.get(application, application.packageName)
}

这是我的演示者

代码语言:javascript
复制
 class MainPresenter(...,
                        val sharedPreference: UserPreferencesAPI)

这是我的测试

代码语言:javascript
复制
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();
}

运行测试后,我看到:

代码语言:javascript
复制
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)

我应该创建影子KeyStoreKeyGenerator吗?我应该用接口包装KeyStore类吗?

EN

回答 1

Stack Overflow用户

发布于 2017-02-21 20:58:56

我设法通过编写一个自定义的影子http://robolectric.org/custom-shadows/来解决它

代码语言:javascript
复制
@Implements(android.security.KeyChain.class)
public class KeyChainShadow {
   @RealObject
   private KeyChain keyChain;


    @Implementation
    public static boolean isBoundKeyAlgorithm(String algorithm) {
        return false;
    }

}

别忘了用注解你的测试

代码语言:javascript
复制
@Config(shadows = KeyChainShadow.class)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40192294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档