Я создаю компонент Android в виде проекта Gradle. Чтобы протестировать пользовательский интерфейс моих компонентов в нескольких конфигурациях с помощью структуры espresso, я есть TestActivity
в androidTest
исходном наборе, который я могу использовать.
Чтобы прояснить файловое дерево:
src/
androidTest/
java/my.package/
TestActivity.kt
...
res/layout/
my_test_activitity.xml
test/
java/my.package/
MyUnitTests.kt
Теперь я хочу начать использовать robolectric для некоторых своих модульных тестов, а также протестировать свой TestActivity
оттуда. Интересно, что Android Studio не жалуется, когда я устанавливаю Robolectric в MyUnitTests.kt
:
val activity = Robolectric.setupActivity(TestActivity::class.java) // no error
Однако, когда я пытаюсь запустить модульные тесты, gradle выдает мне эту ошибку:
e: src/test/java/my.package/MyUnitTests.kt: Unresolved reference: TestActivity
Я предполагаю, что исходный набор test
не имеет доступа к исходному набору androidTest
, хотя Android Studio, похоже, думает, что он есть.
Как я могу это исправить (сделать классы и ресурсы в androidTest
доступными из test
)? Это вообще правильный подход при совместном использовании кода между инструментальными тестами и модульными тестами, или есть лучший способ?