【问题标题】:Android Unit test for a PreferenceFragmentPreferenceFragment 的 Android 单元测试
【发布时间】:2014-02-06 09:30:53
【问题描述】:

我有几个需要测试的 PreferenceFragment 类:

public class MyPref extends PreferenceFragment

如何测试它们?

例如我尝试过:

public class MyPrefTester extends ActivityInstrumentationTestCase2<MyPref> 

但是这失败了,因为这个 Android 测试类要求参数继承自 Activity。并且 PreferenceFragment 继承自 Fragment(由 Activity 使用)。

有什么建议?

【问题讨论】:

  • 不知道大家是否熟悉 Model-View-Presenter 模式,但是如果 Fragment 在接口后面,单独测试 Presenter 逻辑会更容易。
  • 您正在尝试在片段上使用 ActivityInstrumentationTestCase2。这显然行不通,而是在 Activity 上使用它。

标签: android unit-testing junit preferencefragment


【解决方案1】:

过去几周我一直在解决同样的问题,这是我的方法:

  1. 为将要实例化此片段的活动创建一个 ActivityInstrumentationTestCase2。
  2. 使用 robots 库转到首选项片段屏幕。
  3. 使用 robotsium 进行更改。
  4. 修改片段的 onDestroy 方法以广播带有对首选项所做更改的意图。
  5. 在您用于此测试用例的 ActivityInstrumentationTestCase2 中创建一个广播接收器。
  6. 从此片段返回以确保已保存首选项并调用 onDestroy
  7. 在 onDestroy 接收到 Intent 时,保存更改。
  8. 返回片段并确保接收到的保存值与显示的相同。 希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2014-12-10
    • 2016-10-21
    相关资源
    最近更新 更多