【问题标题】:Testing Firebase Classes in swift Xctest在 swift Xctest 中测试 Firebase 类
【发布时间】:2017-03-03 20:40:59
【问题描述】:

我正在使用 firebase 组合一个应用程序,我想确保我可以在它上面运行测试。没有很多关于它的文档——所以我想看看我是否以正确的方式做这件事——或者我做的是否完全错误。

此解决方案的一些不妥之处: 1. 每次我启动一个新的测试类时,我都在运行 FirApp.configure - 没有办法可以共享吗?例如,类似于 AppDelegate 在应用程序上的操作方式。目前这似乎是冲突的,所以测试没有向数据库写入任何内容。 2.每次上新课时我都必须进行身份验证-这可以共享吗? (即在 Pre-Setup 设置文件中?)

import XCTest
import Firebase

@testable import BurgerRestaurant
class BurgerTests: XCTestCase {
    var sut:Burger!

    override func setUp() {
        super.setUp()
        FIRApp.configure()
        self.sut = Constants.MockedObjects.testBurger


    }

    override func tearDown() {
        sut = nil
        super.tearDown()
    }

    func testSave() {
        if TestSettings.useRealFBaseCalls {
            let testSave = self.expectation(description: "Saving Burger Object")
            FIRAuth.auth()?.signIn(withEmail: TestSettings.testFireBUser, password: TestSettings.testFireBPass, completion: { (user, error) in


                self.sut.save(completion: { 
                    testSave.fulfill()
                })

            })
        }
    self.waitForExpectations(timeout: 15, handler: nil)
    }
}

欢迎提出关于如何进行测试的想法。

谢谢

【问题讨论】:

    标签: ios swift firebase xctest


    【解决方案1】:

    (我的观点是)你真的不应该测试 Firebase 是否做了它应该做的事情,你应该只是测试 YOUR 代码是否做了它应该做的事情。 Firebase 应该有自己的测试。我会为 Firebase 设置一个模拟并将其提供给您的测试用例,并确保您的代码进行应有的调用。 GitHub 上有几个 Firebase 测试模拟。 (我没有使用过 Firebase,所以我无法证明它们有多好,或者它们是否能满足您的需求,只是我能够快速找到的一些):

    https://github.com/katowulf/mockfirebase

    https://github.com/soumak77/firebase-mock

    【讨论】:

    • 同意你的观点,乔丹-感谢分享-。我将尝试这些并在此处发布结果
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-08
    • 1970-01-01
    • 2013-10-23
    • 1970-01-01
    • 2019-10-09
    • 2021-03-21
    相关资源
    最近更新 更多