2013-08-16 4 views
13

У кого-нибудь было удачное тестирование модульных тестов для AsyncTaskLoaders в Robolectric? Я попробовал модифицированную версию этого example for AsyncTask, но он не проявляет такого же поведения. В частности, onLoadFinished никогда не вызывается. Существуют ли какие-либо обоснованные примеры для тестирования Loaders с Robolectric?Тестирование AsyncTaskLoaders с Robolectric

+1

Вы нашли решение? – Kuno

+0

К сожалению, нет. –

ответ

1

Не используйте погрузчики. Их непросто проверить, и они тесно связаны с фрагментами и действиями, которые их используют. Вместо этого используйте RxJava Observables для ваших асинхронных потоков данных. Вы можете отключить планирование и протестировать их синхронно в своих модульных тестах. Это намного чище и гораздо более прямолинейно.

+0

Есть ли у вас какие-либо примеры для обмена? Я смотрю специально для части «развязывающего планировщика». Вы делаете что-то по-другому в своем коде при подписке, например, накладываете общий планировщик? Или есть отличный метод, просто говорит Rxjava выполнить все в указанном потоке? –

+0

Я передаю SchedulerFactory для классов, которые в ней нуждаются, и в процессе производства я передаю асинхронные планировщики (io, newThread и т. Д.) Для своих соответствующих вызовов в заводских методах, тогда как в модульных тестах все вызовы возвращают текущий поток для всех звонки. Вы можете передать планировщик наблюдаемому. –

0

Я просто разместил так, как я получил его на работу в билете стека: Testing a CursorLoader with Robolectric & Mockito

Она включает в себя написание пару дополнительных теневых классов. Я могу вставить исправление здесь, если будет запрошено, но я не был уверен, что соглашение было для дублированного ответа.

Смежные вопросы