Модульные тесты Android Firestore выдают ошибку циклирования

#android #firebase #junit

# #Android #firebase #junit

Вопрос:

Я пытаюсь выполнить модульное тестирование некоторых функций Firestore следующим образом:

 @Test
public void ratingTest() throws InterruptedException {
    CountDownLatch latch = new CountDownLatch(1);
    FirebaseUtils.doTask(1, new FirebaseUtils.OnComplete() {
        @Override
        public void onSuccess() {
            //assertions
            latch.countDown();
        }

        @Override
        public void onFail() {
            //assertions
            latch.countDown();
        }
    });
    latch.await();
}
 

Но я получаю следующую ошибку:

 Caused by: java.lang.RuntimeException: Method getMainLooper in android.os.Looper not mocked. See http://g.co/androidstudio/not-mocked for details.
    at android.os.Looper.getMainLooper(Looper.java)
    at com.google.firebase.FirebaseApp$UiExecutor.<clinit>(FirebaseApp.java:696)
 

Я уже нашел предполагаемое решение, которое включает добавление следующего тестового класса:

 @Rule
public InstantTaskExecutorRule instantTaskExecutorRule = new InstantTaskExecutorRule();
 

И это для gradle:

 testImplementation 'androidx.arch.core:core-testing:2.1.0'
 

Похоже, это не имеет значения, и я не могу найти никаких других решений.