Ошибка надувания класса com.google.android.material.tabs.TabLayout внутри теста FragmentScenario
Я написал тест, используя 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, но это не помогло
Что я могу сделать, чтобы это исправить?
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)