在Roboelectric单元测试中忽略与Firebase相关的异常

时间:2018-12-10 07:14:20

标签: android unit-testing robolectric

当我尝试在Application类中初始化Firebase时,我的Roboelectric单元测试给出了此异常。

filtered = arrayper.filter({$0.firstName!.starts(with: "te")}) class PersonName { var firstName: String = "" var lastName: String = "" init(_ firstName:String, lastName:String) { self.firstName = firstName self.lastName = lastName } } var personNames: [PersonName] = [] // Initialize filtered.forEach { (personDetail) in personNames.append( PersonName(personDetail.firstName ?? "", lastName: personDetail.lastName ?? "")) // Filtered values append to array }

有什么办法可以忽略此异常并使我的测试通过?

2 个答案:

答案 0 :(得分:1)

如果您在测试中不需要Firebase,则可以使用以下命令注释测试类

@RunWith(RobolectricTestRunner.class)
@Config(application = Application.class)

使用与应用程序自定义应用程序不同的应用程序。

答案 1 :(得分:0)

组织代码,使其不依赖Firebase连接并传递模拟?通常,让单元测试依赖远程服务不是一个好主意,这更是集成测试或验收测试的领域。

或者,如果太难了,可以在@Before中初始化吗?