Я запутался, когда использовать инструментальный тест, а когда использовать юнит-тест - PullRequest
0 голосов
/ 26 апреля 2020

С AndroidX Test Framework теперь мы можем запустить Espresso test как модульный тест с использованием Robolectri c backend. Но я запутался, когда использовать инструментальный тест, а когда использовать модульный тест.

Допустим, у нас есть два экрана: MovieListActivity и MovieDetailActivity . когда я нажимаю на элемент в MovieListActivity , подробности этого mov ie будут отображаться в MovieDetailActivity .

Теперь с этим сценарием, что может быть возможные юнит-тесты и какие могут быть возможные инструментальные тесты?

Например, я могу написать инструментальный тест для

  • Проверить, есть ли фильмы в списке
  • Нажатие на mov ie переходит к подробному экрану
  • Подробный экран отображает подробности правильно.

но теперь эти тесты также можно запускать как модульные тесты (так как мы используя Android X Test Framework), плюс это быстрее, так как мы не проводим тест в устройстве / эмуляторе. Итак, что делает тест пригодным для инструментального теста?

Что если я хочу выполнить тест как модульный тест, так и инструментальный тест?

Поскольку мы используем Android X Test Framework этот же файл модульного теста можно запустить как инструментальный тест, скопировав файл в папку androidTest. Это делает дубликат файла и усложняет обслуживание тестового примера. (Например, если я выполняю редактирование в папке устройства test, то же самое изменение должно быть сделано в файле androidTest.)

  • Можно ли пометить тест для запуска как и инструментальный тест, и модульный тест?
  • Если это плохая практика, какие из лучших и какие другие рекомендации следует учитывать при использовании Android X Test Framework?
...