Android Marshmallow: Test permissions with Espresso?

前端 未结 13 1364
庸人自扰
庸人自扰 2020-11-29 19:31

The new permissions scheme introduced by Android Marshmallow requires checking for specific permissions at runtime, which implies the need to provide different flows dependi

13条回答
  •  渐次进展
    2020-11-29 20:28

    If you need to set a permission for a single test or during runtime rather than a rule you can use this:

    PermissionRequester().apply {
        addPermissions(android.Manifest.permission.RECORD_AUDIO)
        requestPermissions()
    }
    

    e.g.

    @Test
    fun openWithGrantedPermission_NavigatesHome() {
        launchFragmentInContainer().onFragment {
            setViewNavController(it.requireView(), mockNavController)
            PermissionRequester().apply {
                addPermissions(android.Manifest.permission.RECORD_AUDIO)
                requestPermissions()
            }
        }
    
        verify {
            mockNavController.navigate(R.id.action_permissionsFragment_to_homeFragment)
        }
    }
    

提交回复
热议问题