Может кто-нибудь объяснить AndroidX.Test Framework и как это влияет на мои тесты юнит / робоэлектрик / эспрессо? - PullRequest
0 голосов
/ 21 ноября 2018

Я прошел Тест Android Apps в документе Android.Google ввел тестирование AndroidX, но я все еще очень запутался в его последствиях.

Я использую компоненты архитектуры MVVM Android с ViewModel, LiveData.

Какие части Android X Framework мне нужно использовать?

Вид (Activity.Fragments) -> Эспрессо?

ViewModel (с LiveData) -> RoboElectric?

Модель -> JUnit или RoboElectric?

Почему Google до сих пор путает нас с большим количеством библиотек, почему они не могут перенести все локальные тесты, тесты Instrumentation и все в рамках одной платформы (Espresso)?

1 Ответ

0 голосов
/ 21 ноября 2018

Команда Google Testing внесла множество улучшений в свою среду тестирования AndroidX.

Почему Google по-прежнему путается с большим количеством библиотек, почему они не могут перенести все локальные тесты, тестирование инструментов все под той же платформой (Espresso)?

С AndroidX Test онина самом деле пытаются решить эту проблему!

Во-первых, обычные тесты юнитов "Junit" не изменились.Вы должны протестировать свой Java-код на JVM так же, как вы это делали.

Но теперь, с AndroidX, они сделали API Robolectric 4.0 таким же, как Espresso, так что теперь вы можете запускать ваши тесты Espresso какРобоэлектрические испытания.Это означает, что при локальной разработке вы можете выполнять итерации быстрее, потому что инструментальные тесты могут выполняться намного быстрее, чем при запуске на эмуляторах.Это также облегчает изучение Robolectric, потому что вы можете использовать тот же API, что и эспрессо.

Когда вы дойдете до фазы PR или CI, вы можете отправить те же самые тесты , которые выполнялись на Robolectric JVM, для запуска на вашем CI на реальных устройствах с использованием Espresso.

Я предложил проверить Тестирование перезагружено (с AndroidX Test) (Android Dev Summit '18) для получения дополнительной информации.

In this picture, the failing UI and Unit tests would represent the same test but represented as Espresso/Robolectric Instrumentation Test depending on what you want to run and when

На этом рисунке неудачные тесты пользовательского интерфейса и модульные тесты будут представлять собой один и тот же тест, но представлены как тестирование эспрессо / робототехнических приборов в зависимости от того, что и когда вы хотите запустить.Для ясности, вы хотели бы запустить его как Robolectric, когда вы делаете локальную разработку, особенно с TDD.Когда вы будете готовы отправить PR, вы можете запустить тот же тест на CI с эмулятором или реальным устройством.

Итак, хотя AndroidX.test может сбивать с толку, я советую посмотреть это видео, чтобы получить немного большепонять намерения Google с фреймворком.

Кроме того, я согласен, что они могут предоставить больше примеров и рекомендаций по использованию нового Androidx.Test!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...