#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'
Похоже, это не имеет значения, и я не могу найти никаких других решений.