在swift中测试Firebase类Xctest
问题描述:
我正在使用firebase将应用程序放在一起,并且我想确保可以对其执行测试。关于它的文档并不多 - 所以我想看看我是否以正确的方式来做 - 或者如果我完全错了。在swift中测试Firebase类Xctest
一些对此解决方案感觉不对劲的东西: 1.我每次启动一个新的测试类时都运行FirApp.configure--是不是有一种可以共享的方式?例如类似AppDelegate在应用程序上的操作。目前这似乎是相互冲突的,所以测试不会写任何东西给数据库。 2.每次我做一个新课程时,我都必须认证 - 这是可以共享的。 (即在预安装安装文件中?)
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)
}
}
想法是如何让测试工作。
感谢
答
(我的观点是,)你真的不应该测试一个火力地堡做什么它应该,你应该只测试一个您代码做什么它应该。 Firebase应该有自己的测试。我会为Firebase设置一个模拟,并将其提供给您的测试用例,并确保您的代码正在进行应该的调用。 GitHub上有一些Firebase测试嘲笑。 (我没有用火力地堡,所以我不能证明如何的好,这些都是,或者如果他们甚至会满足您的需求,只是一些我能很快找到):
同意你约旦 - 感谢分享它 - 。我会尝试这些并在此发布结果 –