ios - 您可以将 Firebase 添加到 Swift 包中的单元测试中吗?
问题描述
我有一个 Swift 包,它为 Firebase 实现了一些读/写方法。该软件包已将 Firebase 正确设置为依赖项。我可以将我的 Swift 包添加到 iOS 项目中,并且它可以正常工作。
现在我想为 Swift 包 (an XCTestCase
) 编写一些单元测试,以确保读/写操作按照我的意愿进行。
这是否可能 - 我可以将 Firebase 添加到 Swift 包的测试中吗?你会打电话到哪里FirebaseApp.configure()
?swift 包中的单元测试是否甚至有一个包 ID 来生成GoogleService-Info.plist
?
解决方案
当您使用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 { }
}
推荐阅读
- node.js - 如何从 node-red 的后端代码中安全地存储数据?
- linux - 在 Red-hat Ubuntu 中更改 GNU Make 的默认版本
- linux - 在 linux arm64 上使用 ucontext_t 是否安全?
- coldfusion - ColdFusion 写入文件
- python - 强制处理异常
- python - 将二维数组附加到文本文件
- android - 拉动以关闭 React 导航模式
- mongodb - Springboot MongoDB 连接 URI 在其他键中指定(不使用 spring.data.mongodb.uri)
- android - 如果新片段替换之前的片段或添加到堆栈中,我在哪里配置?
- cypress - 将 Private Repo 中的自定义命令导入 Cypress Repo