簡體   English   中英

從 FragmentController 移動到 FragmentScenario

[英]Moving from FragmentController to FragmentScenario

我正在使用 robolectric 並將我的支持片段更新為 androidx 片段。 這意味着將使用 FragmentController<> 的測試更新為推薦的 FragmentScenario。

使用 FragmentController,我可以啟動它,我可以調用controller.get()來獲取實際的片段並直接對其進行操作,進行公開調用。 有沒有辦法用 FragmentScenario 做到這一點,並直接訪問 androidx.Fragment 實例?

我想直接調用公共方法的原因是因為包含 Fragment 的 Activity 偵聽 Intent,並在其包含的 Fragment 上調用方法,我想測試它的關聯行為。

答案是使用FragmentScenario.onFragment() 這使您可以直接在片段的 UI 線程上執行操作,為您提供對片段的引用。

例如

FragmentScenario<MyCustomFragment> controller = FragmentScenario.launch(MyCustomFragment.class);

controller.onFragment(fragment -> {
    fragment.myCustomFragMethod1();
    fragment.myCustomFragMethod2();
}

// assertions here, testing that myCustomFragMethod1() worked.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM