Различия в android между testImplementation и androidTestImplementation в build.gradle

Я использую andorid studio 3.2, и я новичок в тестировании. Я хочу добавить тестовую библиотеку, но я не понимаю, что мне следует писать в разделе зависимости testImplentation или androidTestImplementation. В чем разница между этими двумя?

Ответ 1

Если вы создаете проект Android с помощью Android Studio. Вы можете найти три каталога, как показано ниже. (каждый каталог называется Source Set)

  • Приложение /SRC/главная
  • app/src/androidTest: для тестирования пользовательского интерфейса Android. Для этого нужно виртуальное или реальное устройство. (Espresso, UI automator)
  • app/src/test: для независимого теста Android.

Каталог androidTest содержит контрольные примеры, которые касаются экрана или проверяют, что отображается на экране. В каталоге test мы в основном выполняем unit tests, например, тестирование одной функции.

Но тестовый каталог предназначен не только для юнит-теста. Вы также можете написать интеграционный тест, как HTTP-вызов. Даже вы можете UI test в каталоге test использовать библиотеку Robolectric. (Это действительно быстрее, чем эспрессо)

Так что же такое testImplementation и androidTestImplementation? (каждый из них называется Configuration)

  • testImplementation: добавляет зависимость для исходного набора test
  • androidTestImplementation: добавляет зависимость для исходного набора androidTest

Смотрите эту статью для деталей.