为Robolectric的SharedPreferences提供测试数据
问题内容:
刚开始使用Robolectric,这似乎是我所需要的。但是,在使用SharedPreferences方面,我遇到了一些障碍。
我有两个测试案例
-
活动需要新的/空的sharedPreferences
-
活动期望其中已包含一些数据的sharedPreferences
对于测试用例1,测试按预期通过,所以一切都很好:)
但是,对于测试用例2,我似乎无法找出一种向Robolectric提供一些虚假数据的好方法,因此Activity可以访问该虚假数据。
感觉像是一个非常普通的用例,但是我似乎无法弄清楚该怎么做!
问题答案:
了解如何-现在看起来如此明显!
对于那些感兴趣的人,您只需获取sharedPreferences,然后用所需的数据填充它。
SharedPreferences sharedPreferences = ShadowPreferenceManager.getDefaultSharedPreferences(Robolectric.application.getApplicationContext());
sharedPreferences.edit().putString("testId", "12345").commit();
如果您有一个自定义的SharedPreferences,则应该能够执行此操作(尚未经过正确的测试,但也可以正常工作)
SharedPreferences sharedPreferences = Robolectric.application.getSharedPreferences("you_custom_pref_name", Context.MODE_PRIVATE);
sharedPreferences.edit().putString("testId", "12345").commit();
希望这对某人有所帮助:)