Прежде всего я хотел бы заявить о своем разочаровании в связи с отсутствием надлежащей инфраструктуры тестирования в Android ... или, может быть, я отставлен, я не знаю ...
I в конечном итоге удалось настроить android-test-plugin, и я написал пару тестов для активности, которая включает в свой макет CustomMapFragment
, который является классом, который я написал, который расширяет SupportMapFragment
.
Все мои тесты, которые пытаются получить экземпляр этой деятельности с использованием:
Тестирование Android в Android Studio с использованием Robolectric issue
activity = Robolectric.buildActivity(MyActivity.class).create().get();
завершаться:
java.lang.NoClassDefFoundError: com/google/android/gms/maps/GoogleMap$OnInfoWindowClickListener
на данный вид деятельности setContentView
.
XML-активность заключается в следующем:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MyActivity">
<fragment
android:id="@+id/customMapFragment"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
class="com.myproject.CustomMapFragment"/>
</RelativeLayout>
Есть обходной путь/решение для этого? Любая помощь будет оценена по достоинству.
Я разделяю Ваше разочарование. У меня такая же проблема, но я не могу запустить какой-либо тест, потому что я получаю классы NoClassDefFoundError на картах, когда Robolectric пытается загрузить классы, поэтому даже тест assertTrue (true) терпит неудачу. Вот мой вопрос с ошибкой, которую я получаю http://stackoverflow.com/questions/18434217/robolectric-fails-to-run-tests-with-google-play-services-maps – alex
Я думаю, что это общая проблема, а не напрямую связанных с картами, потому что я получал ту же ошибку с некоторыми классами, что и при использовании Google cloud messaging. Приятно знать, что есть люди, которые вас понимают :) на случай, если кто-то ответит здесь, я скажу вам. –
Как вы добавили зависимость сервисов Google Play? Использовать репозиторий Google или по-другому? – alex