gpt4 book ai didi

swift - 如何对大多数 View 使用 Firebase 身份验证的 Swift 应用程序进行单元测试?

转载 作者:行者123 更新时间:2023-11-28 07:50:16 24 4
gpt4 key购买 nike

我使用 Firebase 在 Swift 中构建了一个应用程序,其中大部分功能只有在用户登录后才能访问。例如,我有一个预算页面可以从数据库中获取事件预算,但这只能执行一次用户已登录。

有人能建议我如何测试需要调用数据库的功能吗?我本以为我需要在我的测试类中登录一个用户,然后使用这些详细信息来测试我的 Controller ,但每次它都返回 nil?我什至尝试在我的测试类中运行我的登录 View Controller 来验证用户,但这也不起作用。

谢谢!

最佳答案

对于单元测试,最好消除所有外部依赖性。我更喜欢这样做的一种方法,尤其是对于任何类型的网络或数据库,是创建一个 Mock 对象并将模拟对象注入(inject)而不是使用实际的网络模块或数据库。这将涉及一些依赖注入(inject)的重构,并将您的 Firebase 管理器抽象为可以模拟的协议(protocol)。使用 MockFirebase,您无需使用网络或访问实际数据库即可获得所有“身份验证”。

如果您的 Firebase 管理器设置为 Singleton,那么用于制作它的 Mock 的一个很好的资源是:

https://medium.com/@johnsundell/testing-swift-code-that-uses-system-singletons-in-3-easy-steps-89f4884cd325

有关一般模拟的信息,这是另一个链接:

https://www.swiftbysundell.com/posts/mocking-in-swift

关于swift - 如何对大多数 View 使用 Firebase 身份验证的 Swift 应用程序进行单元测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49904600/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com