首页 > 解决方案 > 您可以将 Firebase 添加到 Swift 包中的单元测试中吗?

问题描述

我有一个 Swift 包,它为 Firebase 实现了一些读/写方法。该软件包已将 Firebase 正确设置为依赖项。我可以将我的 Swift 包添加到 iOS 项目中,并且它可以正常工作。

现在我想为 Swift 包 (an XCTestCase) 编写一些单元测试,以确保读/写操作按照我的意愿进行。

这是否可能 - 我可以将 Firebase 添加到 Swift 包的测试中吗?你会打电话到哪里FirebaseApp.configure()?swift 包中的单元测试是否甚至有一个包 ID 来生成GoogleService-Info.plist

标签: iosswiftfirebasetestingpackage

解决方案


当您使用GoogleService-Info.plist文件初始化 Firebase 时,Firebase 会解析该文件,并且最终通过FirebaseOptions对象处理配置。FirebaseApp.configure(options:)允许您传递自定义FirebaseOptions对象进行配置。

GoogleService-Info.plist通过下载文件并将相应的值复制到以下代码,我能够为测试初始化​​ Firebase :

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

推荐阅读