Я пытаюсь реализовать тестирование для приложения Android, которое я создаю.Один из тестов включает файл интерактора, который я написал (DatabaseInteractor.java
), который подключается к Google Firestore.Конструктор по умолчанию устанавливает для объекта FirestoreFirebase
значение FirebaseFirestore.getInstance();
.
. Я использую Mockito & JUnit для своих модульных тестов.Когда я пытаюсь создать объект DataBaseInteractor в моем модульном тесте, я получаю следующую ошибку:
java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process null. Make sure to call FirebaseApp.initializeApp(Context) first.
Очевидно, эта ошибка возникает, когда конструктор по умолчанию вызывается в моем модульном тесте.Я не уверен, почему это происходит.Я могу создать объект DataBaseInteractor в других частях моего приложения для Android без проблем.Существуют ли ограничения в том, когда и где я могу инициализировать класс, который использует FireBaseFireStore
объекты?Если я хочу высказать поведение FireBase для модульного тестирования, как мне обойти эти ограничения?
РЕДАКТИРОВАТЬ: усеченная версия моего DataBaseInteractor.java
файла:
public class DatabaseInteractor {
private static User theUser;
private FirebaseFirestore db;
private DocumentReference userData;
public DatabaseInteractor() {
db = FirebaseFirestore.getInstance();
theUser = new User();
}
// ... various methods that add/retrieve Users from FireStore ... //
}