0

我使用以下方法编写了一个测试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 但它没有帮助

我能做些什么来解决这个问题?

4

1 回答 1

2

活动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)
于 2019-08-13T17:58:47.200 回答