在一个设备/操作系统版本上,SharedPreferences的Android测试失败

时间:2013-11-14 21:33:23

标签: android testing

我有一个活动的ActivityInstrumentationTestCase2。

我测试一下,在onStop()方法中,当BACK键退出Activity时,会保存对设置的更改。

在我的测试中,我启动活动,修改设置,然后使用finish()停止活动。 我等待活动结束,然后检查SharedPreferences中保存的设置。

在使用Android 4.3的Nexus 7中,此测试永远不会失败。

在装有Android 4.1.2的三星S3中,它始终失败。

我尝试过使用不同的上下文,并且在SharedPreferences.Editor中使用commit()而不是apply(),但行为没有区别。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

而不是以:

结束活动

activity.finish();

你应该结束:

getInstrumentation()callActivityOnStop(活性);

我怀疑可能有更好的方法来结束活动并等待它退出,就像按下了Back键并然后调用onStop()一样。


“修复”修复了失败案例,但导致其他人失败。 如果我使用activity.finish(),它们似乎只能工作。