我使用FragmentScenario
编写了一个测试:
@Test
fun test() {
launchFragmentInContainer<MyFragment>(Bundle().apply { putParcelableArray(MY_DATA, getMyData()) })
// checks here
}
我得到以下错误:
Error inflating class com.google.android.material.tabs.TabLayout
而且只有在启动测试时我才会收到错误消息(该应用程序可以运行)
我试图将androidTestImplementation "com.google.android.material:material:1.0.0"
添加到androidTestImplementation,但没有帮助
该如何解决?
答案 0 :(得分:1)
活动FragmentScenario
启动的默认主题的父主题为android:Theme.WithActionBar
,而不是MaterialComponents
要求的TabLayout
主题。
您应该传递要使用的主题。
例如,假设您的应用具有这样声明的主题:
<style name="AppTheme" parent="Theme.MaterialComponents">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
您将使用:
launchFragmentInContainer<MyFragment>(
Bundle().apply { putParcelableArray(MY_DATA, getMyData()) },
R.style.AppTheme)