Я пытаюсь проверить намерения в Activity
и некоторые нажатия кнопок в Fragment
(что в том же действии) с Espresso
, но проблема в том, что Fragment
содержит настраиваемое представление с Gif
анимацией в этом. Пользовательский вид - это, в основном, вариант класса Movie
для отображения Gif
. Ошибка Я получаю
Не удалось запустить намерение Intent в течение 45 секунд. Пожалуй главное
поток не простаивает в течение разумного периода времени
Таким образом, это означает, что я предполагаю, что Gif вызывает загрузку основного потока и тест не может быть запущен.
Что я попробовал:
- Отключение всех масштабов анимации дерева в настройках Dev (пробовали 2 устройства)
- Использование Ui automator и запуск команды shell adb для отключения анимации
- Попытка установить вид с отсутствием видимости Gif во время теста
Не из которых не работал . Я полагаю, что этот пользовательский вид не рассматривается платформой как анимация и не отключается. Я все еще вижу это. И я попытался findViewById
и установить видимость gone
. Вид все еще там, когда тест запущен. Я думаю, что создание ушедшего вида - хороший обходной путь, так что, может быть, кто-то знает путь!
Мой тестовый код:
@RunWith(AndroidJUnit4.class) public class TutorialActivityTest {
private TutorialActivity tutorialActivity;
private TutorialFragment tutorialFragment;
@Rule
public ActivityTestRule<TutorialActivity> mActivityRule = new ActivityTestRule<>(TutorialActivity.class);
@Before
public void setUp() {
tutorialActivity = mActivityRule.getActivity();
//tried to set visibility there with fragment.getView().findViewById... And also in the test directly
@Test
public void testOpenMainPageIntentFired() {
Intents.init();
tutorialActivity.openMainPage();
intended(hasComponent(MainActivity.class.getName()));
Intents.release();
}