【问题标题】:Moving from FragmentController to FragmentScenario从 FragmentController 移动到 FragmentScenario
【发布时间】:2020-05-15 00:17:30
【问题描述】:

我正在使用 robolectric 并将我的支持片段更新为 androidx 片段。这意味着将使用 FragmentController 的测试更新为推荐的 FragmentScenario。

使用 FragmentController,我可以启动它,我可以调用 controller.get() 来获取实际的片段并直接对其进行操作,进行公开调用。有没有办法用 FragmentScenario 做到这一点,并直接访问 androidx.Fragment 实例?

我之所以要直接调用公共方法,是因为包含 Fragment 的 Activity 侦听 Intent,并在其包含的 Fragment 上调用方法,我想测试它的关联行为。

【问题讨论】:

    标签: android android-fragments robolectric android-fragmentscenario


    【解决方案1】:

    答案是使用FragmentScenario.onFragment()。这让您可以直接在片段的 UI 线程上执行操作,为您提供片段的引用。

    例如

    FragmentScenario<MyCustomFragment> controller = FragmentScenario.launch(MyCustomFragment.class);
    
    controller.onFragment(fragment -> {
        fragment.myCustomFragMethod1();
        fragment.myCustomFragMethod2();
    }
    
    // assertions here, testing that myCustomFragMethod1() worked.
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-01
      • 2015-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多