Robolectric创建不同应用程序的虚拟SharedPreferences

时间:2017-04-28 13:36:46

标签: java android robolectric android-sharedpreferences

我在这里搜索过帖子以及谷歌搜索我使用Robolectric进行单元测试时遇到的问题的解决方案。我需要测试的一件事是查找位于另一个应用程序中的共享首选项文件。因此,我不需要在我正在测试的活动上生成/创建/查找共享首选项文件,我需要驻留在不同应用程序中的共享首选项文件。所以,我需要通过认为该文件存在于该应用程序来欺骗环境。所以TLDR

  1. App1在
  2. 上执行单元测试
  3. App1访问App2的SharedPreferences
  4. 需要生成App2的假SharedPreferneces文件,以便App1可以访问并继续测试。任何帮助表示赞赏。谢谢!。

1 个答案:

答案 0 :(得分:0)

我首先会修改代码以实现下一步:

  1. 您有一个适用于任何SharedPreferences文件的类
  2. 您有一个打开/复制另一个应用程序文件的类
  3. 您有一个通过将文件读取类的输出提供给共享首选项处理器类
  4. 来编排此类的类

    然后单元测试看起来像:

    1. 检查共享首选项类是否需要执行操作
    2. 检查将文件从一个位置复制/读取到另一个位置的类 3A。检查orchestrator类是否将正确的路径传递给文件操作类 3B。检查orchestrator类是否将结果(流,字符串等)传递给共享首选项类
    3. 希望它有所帮助!