Android 使用FragmentScenario.EmptyFragmentActivity测试AppCompative工具栏
对于我的测试,我在emtpy活动根视图容器中启动该片段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
@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
将其设置为支持工具栏。此外,还可以在片段中完成向上按钮的自定义处理,该片段应可使用片段场景进行测试