У меня есть Activity
, который должен начать AsyncTask
, и я хотел бы протестировать это поведение с помощью Robolectric 3.0.Протестируйте, что AsyncTask был запущен с использованием Robolectric
До сих пор, я делаю это так, но я не очень счастлива с ним:
@Test
public void testAsyncTaskIsStarted() {
activity = Robolectric.setupActivity(MyActivity.class);
Assert.assertTrue(ShadowApplication.getInstance().getBackgroundThreadScheduler().areAnyRunnable());
}
Есть ли лучший способ сделать это?
Благодарим за помощь.
Что касается меня, лучше проверить это фоновое задание и проверить что-то произошло. –
Да, но вся цель модульного тестирования состоит в том, чтобы тестировать компоненты по отдельности. Таким образом, я не зависим от поведения задачи, особенно если моя AsyncTask выполняет HTTP-запросы или другие операции, которые я должен издеваться. –
Ах, извините, я не понял, что вас не интересует результат задачи, а только интересует, что какой-то абстрактный код будет запущен в другом потоке. Еще более ясно, что он будет запущен поверх 'AsyncTask'. Я бы рекомендовал посмотреть на другой способ инъекций (Кинжал 2 - мой выбор) –