Мне кажется, я в корне неправильно понимаю предназначение Robolectric. Я бьюсь с этим уже неделю, и пока что получение нового сообщения об ошибке считается прогрессом. Я могу протестировать некоторые базовые вещи, такие как статические представления в действии, но когда в игру вступают что-то более сложное, все просто разваливается. Мне пришлось расширить Robolectric для поддержки сторонних библиотек с определенными параметрами, панелями действий Appcompat и многими другими вещами, что отнимало чрезвычайно много времени и нигде не было задокументировано, и все продвигается довольно медленно. Я начинаю думать, что использую его неправильно, и он просто не должен делать то, что я хочу.
Общая логика приложения довольно проста, поэтому модульное тестирование не так уж много, самые сложные вещи находятся в пользовательском интерфейсе и удаленных вызовах API. Предполагается ли, что Robolectric просто сделает модульное тестирование для Android менее болезненным, чем с JUnit, потому что он может работать на JVM и поддерживает несколько классов Android? Возможно, для моих нужд больше подойдет фреймворк для тестирования поведения «черный ящик», такой как Espresso? Но мы используем непрерывную интеграцию, и Robolectric было удобно и легко настроить для запуска тестов на сервере CI, и я бы хотел, чтобы все так и оставалось.
Для чего вы используете Robolectric? Многие сообщения в блогах рекомендуют его для «тестирования жизненного цикла активности», но, поскольку я также новичок в мире Android, я не совсем понимаю его цель, тем более что приложение, которое я тестирую, предназначено только для портретной ориентации. . Может ли кто-нибудь дать обзор того, для чего вы используете Robolectric и как вы это делаете, желательно с примерами кода, и объяснить, почему и насколько важны эти тесты?