# #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 { }
}