在活动开始之前访问活动

Lui*_*ano 4 junit android

我正在使用InstrumentationTestCase类来对活动中的某些内容进行单元测试.

在启动此活动之前,我需要能够检查SharedPreferences的内容并对其进行编辑.

我无法使用setUp方法创建Activity并访问它的SharedPreferences对象进行编辑,然后在完成setUp方法之前关闭该活动,因为它显然是锁定测试处理.

在我在测试中启动活动之后,我也无法访问SharedPreferences,因为一旦Activity启动,它就会在我有机会获得它之前更改SharedPreferences对象并按照它行动.

我之前显然无法访问SharedPreferences,因为我没有Activity对象......而且一旦我这样做,它就已经在执行代码并被启动了......

所以,我的问题是,在我通过Intent实际创建Activity之前,有没有办法访问此Activity的SharedPreferences(和任何其他Activity信息)?

我无法将其更改为ActivityInstrumentationTestCase2,因为我的测试在其进程中使用了第二个活动,因此我不能只更改为此类并使用它的setUp()方法来访问SharedPreferences.

Lui*_*ano 7

我找到了最简单的方法,只需通过检测,而无需编辑应用程序的体系结构或任何访问属性.

我通过这个实现了它:

Instrumentation instrumentation = getInstrumentation();
instrumentation.getTargetContext().getSharedPreferences(..);
Run Code Online (Sandbox Code Playgroud)

这样我可以在检测启动任何Activity之前访问SharedPreferences.

无论如何,感谢所有帮助,提示和其他替代方案.