Я написал библиотеку беспроводной связи Android, которая по своей природе является многопоточной, многопроцессорной и (конечно) многопользовательской.
Существуют ли эффективные библиотеки / каркасы для тестирования кодатакого рода в мире Android?
- Модульное тестирование многопоточного кода сложно по очевидным причинам.Модульные тесты плохо работают с потоками.(Например) Как мне выполнить модульное тестирование функции, которая должна ожидать широковещательную рассылку?
- Большинство ошибок, по-видимому, ограничены "реальным миром".Библиотека требует двух устройств, чтобы общаться друг с другом.Если я высмеиваю идеальную последовательность ответов, это похоже на обман.Ничто не идет не так, как в реальном мире.Кроме того, процесс макетирования является сложным и отнимает много времени - я пишу гораздо больше кодов, чем в реальной библиотеке.
- Все платформы тестирования на Android, Инструментированные или другие, предназначены для одного устройства одновременно.Я не могу запустить одновременные, взаимозависимые тесты на двух устройствах одновременно, могу ли я?
У меня сейчас только системный тест, и это в основном Ad hoc.Это обычное приложение с простым скриптом контроллера, которое отправляет приложение на два устройства, назначает их роли, выполняет высокоуровневый тест функциональности и опрашивает файл журнала на обоих устройствах.Если время ожидания истекло до записи файлов журнала, скрипт возвращает код ошибки.Если журналы записаны, последовательность связи проверяется на правильность.Этот тест, теоретически, может быть добавлен к CI, но его нужно будет запускать с локальной тестовой машины с физически подключенными устройствами.Я могу сделать этот тест более надежным со временем, но сейчас он очень хрупкий.Опять же, я сделал это для этого конкретного проекта.
Я не уверен в своем подходе. Существуют ли какие-либо инструменты в экосистеме Android, которые могут помочь мне протестировать проект такого рода?Любой совет или толчок в правильном направлении будет принята с благодарностью.