【问题标题】:Can you add Firebase to unit tests in a Swift package?您可以将 Firebase 添加到 Swift 包中的单元测试中吗?
【发布时间】:2021-11-11 01:49:18
【问题描述】:
我有一个 Swift 包,它为 Firebase 实现了一些读/写方法。该软件包已将 Firebase 正确设置为依赖项。我可以将我的 Swift 包添加到 iOS 项目中并且它可以正常工作。
现在我想为 Swift 包(XCTestCase)编写一些单元测试,以确保读/写操作按照我的意愿进行。
这是否可能 - 我可以将 Firebase 添加到 Swift 包的测试中吗?你会在哪里打电话给FirebaseApp.configure()? swift 包中的单元测试是否甚至有一个包 ID 来生成 GoogleService-Info.plist?
【问题讨论】:
标签:
ios
swift
firebase
testing
package
【解决方案1】:
当您使用 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 { }
}