androidTest — инструментальное тестирование Android (тест зависит от объекта Handler())

Сейчас я занят тестированием некоторых классов, связанных с функциональностью BLE. Поэтому я написал несколько инструментальных тестов. Есть один класс, который зависит от объекта Handler(). Трудно протестировать более одной функции, потому что сейчас я использую Looper.prepare() внутри одного теста, так что класс, который я хочу протестировать, инициализируется без исключений. Если я захочу написать второй тест, он провалится из-за Looper. Я получаю следующее исключение:

java.lang.RuntimeException: Only one Looper may be created per thread.

Еще заметил, что есть заказ на тесты. Вы знаете, от чего это зависит? Тест: iniRepositoryTest() выполняется перед checkIfProductConfiguredTest(). Если я использую Looper.prepare() только в initRepositoryTest(), оба теста выполняются без исключения.

PS: я знаю, что названия тестов могли бы быть лучше :D


person mitch    schedule 06.07.2020    source источник


Ответы (1)


Мне удалось избавиться от этой ошибки с помощью @UiThreadTest аннотация. Попробуйте.

Или попробуйте это, если вам нужен обработчик: https://stackoverflow.com/a/53933984

person Nuno    schedule 21.08.2020