Можете ли вы добавить Firebase в модульные тесты в пакете Swift?

# #ios #swift #firebase #testing #package

Вопрос:

У меня есть пакет Swift, который реализует некоторые методы чтения/записи в Firebase. В пакете Firebase правильно настроена как зависимость. Я могу добавить свой пакет Swift в проект iOS, и он работает правильно.

Теперь я хочу написать несколько модульных тестов для пакета Swift (an XCTestCase ), чтобы убедиться, что операции чтения/записи выполняют то, что я хочу.

Возможно ли это вообще — могу ли я добавить Firebase в тесты пакета Swift? Куда бы вы позвонили FirebaseApp.configure() ? Есть ли у модульного теста в пакете swift даже идентификатор пакета для его создания GoogleService-Info.plist ?

Ответ №1:

При инициализации Firebase с GoogleService-Info.plist помощью файла Firebase анализирует этот файл, и в конечном итоге конфигурация обрабатывается с помощью FirebaseOptions объекта. FirebaseApp.configure(options:) позволяет передать пользовательский FirebaseOptions объект для настройки.

Я смог инициализировать Firebase для тестов, загрузив GoogleService-Info.plist файл и скопировав соответствующие значения в следующий код:

 final class DemoTests: XCTestCase {
    override func setUp() {
        let appOptions = FirebaseOptions(
            googleAppID: "**GOOGLESERVICE-INFO-GOOGLE-APP-ID**",
            gcmSenderID: "**GOOGLESERVICE-INFO-GCM-APP-ID**"
        )
        appOptions.apiKey = "**GOOGLESERVICE-INFO-API-KEY"
        appOptions.projectID = "**GOOGLESERVICE-INFO-PROJECT-ID"
        FirebaseApp.configure(options: appOptions)
    }

    func testSetup() throws { }
}