У меня есть библиотека Java, которая использует несколько вещей из API-интерфейсов Android.Я хотел бы использовать Mockito для написания модульных тестов для этой библиотеки.
Есть ли способ, которым я могу пойти по этому поводу?
Mockito плохо играет на виртуальной машине Dalvik, см. Этот пост: Использование Mockito с виртуальной машиной Android
ОБНОВЛЕНИЕ:
С этого поста я открыл для себя Robolectric, и у меня была возможность поработать в Pivotal Labs и внести небольшой вклад в эту библиотеку.Я бы порекомендовал использовать это поверх среды тестирования Android / mockito.Кроме того, вы можете свободно использовать Robolectric AND Mockito, но теневые объекты в Robolectric делают Mockito ненужным для большинства случаев использования.
Проблема с попыткой модульного тестирования Android состоит в том, что библиотека Android, на которой вы строите, имееткаждый метод заглушается, чтобы генерировать исключение заглушки или возвращать ноль.Если вы хотите протестировать свое приложение и хотите получить какое-либо поведение Android, вам не повезло, если только вы не используете Robolectric, который перезаписывает байт-код на лету при загрузке классов и внедряет теневой объект, имитирующий поведение.
ОБНОВЛЕНИЕ 2:
Прошло много времени, и все изменилось.Многие из классов Shadow в Robolectric были заменены настоящими классами Android.Теперь используются настоящие банки Android, и Robolectric загружает классы Shadow только для гораздо меньшего набора вещей.Это еще одна причина использовать Robolectric для тестирования Android.