Android Espresso: How do I test a specific Fragment when following one activity to several fragment architecture

后端 未结 4 657
刺人心
刺人心 2021-02-12 10:52

My app consists of one Activity for many Fragments.

I wish to use Espresso to test the UI of the Fragments. However I ran into a p

4条回答
  •  无人共我
    2021-02-12 11:19

    So, according to patterns and recommended practices by several companies. You need to write targeted and hermetic test for each view, whether it is activity, fragment, dialog fragment or custom views.

    First you need to import the following libs into your project through gradle if you are using gradle in the following way

    debugImplementation 'androidx.fragment:fragment-testing:1.2.0-rc03'
    debugImplementation 'androidx.test:core:1.3.0-alpha03'
    

    In order to test fragment independently from activity, you can start/launch it in the following way:

    @Test
        fun sampleTesting(){
            launchFragmentInContainer()
            onView(withId(R.id.sample_view_id)).perform(click())
        }
    

    This way, you can independently test your fragment from your activity and it is also one of recommended way to achieve hermetic and targeted ui test. For full details, you can read the fragment testing documentation from android docs

    https://developer.android.com/training/basics/fragments/testing

    And I found this repository with lots of test example useful even though it is extremely limited to complexity of test cases with super simple tests. Though it can be a guide to start.

    https://github.com/android/testing-samples

提交回复
热议问题