Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/179.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用FragmentScenario.EmptyFragmentActivity测试AppCompative工具栏_Android_Android Espresso_Android Fragmentscenario - Fatal编程技术网

Android 使用FragmentScenario.EmptyFragmentActivity测试AppCompative工具栏

Android 使用FragmentScenario.EmptyFragmentActivity测试AppCompative工具栏,android,android-espresso,android-fragmentscenario,Android,Android Espresso,Android Fragmentscenario,对于我的测试,我在emtpy活动根视图容器中启动该片段 @Before fun init() { scenario = launchFragmentInContainer(null, R.style.Theme_AppCompat) { MyFragment() } } 在我的片段中,我将工具栏配置为提供后退按钮 (activity as AppCompatActivity).setSupportActionBar(binding.toolbar) (activ

对于我的测试,我在emtpy活动根视图容器中启动该片段

@Before
fun init() {
    scenario = launchFragmentInContainer(null, R.style.Theme_AppCompat) {
        MyFragment()
    }
}
在我的片段中,我将工具栏配置为提供后退按钮

(activity as AppCompatActivity).setSupportActionBar(binding.toolbar)
(activity as AppCompatActivity).supportActionBar?.setDisplayHomeAsUpEnabled(true)
因此,当我运行测试时,我得到一个类强制转换异常

java.lang.ClassCastException: androidx.fragment.app.testing.FragmentScenario$EmptyFragmentActivity cannot be cast to androidx.appcompat.app.AppCompatActivity
所以我必须加上一个高尔德

if(requireActivity() !is FragmentScenario.EmptyFragmentActivity)
    configureToolBar()    
那么,是否有其他方法来配置工具栏,以便我可以使用espresso测试back按钮启动

编辑


显然,有一种方法可以创建自定义活动/容器。

当您说“是否有其他方法可以配置工具栏,以便我可以使用espresso测试back button intent launch?”时,您在测试中验证的片段行为是什么?—您在那里进行的任何espresso测试都将验证活动,不是你的片段。我想验证片段的反向导航。那么,当你测试工具栏上的“向上”按钮时,你的片段的哪些代码正在运行?该逻辑在活动上,如果您使用的是
FragmentScenario
,则不会测试该逻辑。您可以在片段布局中对工具栏进行充气,并通过
AppCompatActivity
将其设置为支持工具栏。此外,还可以在片段中完成向上按钮的自定义处理,该片段应可使用
片段场景进行测试