从 FragmentController 移动到 FragmentScenario



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

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

我想直接调用公共方法的原因是,包含片段的活动侦听意图,并在其包含的片段上调用方法,我想测试它的相关行为。

答案是使用FragmentScenario.onFragment((。它允许您直接对片段的 UI 线程执行操作,从而为您提供对片段的引用。

例如

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

相关内容

  • 没有找到相关文章

最新更新