[英]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.