【发布时间】:2018-03-05 02:23:52
【问题描述】:
我想通过直接访问 Firebase 来测试我的 Firebase 数据访问层。
flutter drive 是运行此类测试的唯一方法,还是有其他方法,例如使用 flutter test 在模拟器中运行?
有哪些可能的方法,我该如何设置它们?
【问题讨论】:
标签: integration-testing flutter
我想通过直接访问 Firebase 来测试我的 Firebase 数据访问层。
flutter drive 是运行此类测试的唯一方法,还是有其他方法,例如使用 flutter test 在模拟器中运行?
有哪些可能的方法,我该如何设置它们?
【问题讨论】:
标签: integration-testing flutter
我目前不知道有什么方法可以使用 flutter test 与真实数据库通信,因为没有 Firebase SDK 可以与网络通信。无论如何,您可能都不希望这样做,因为如果数据更改或 Firebase 服务器不可访问,它可能会使您的测试变得不确定或不稳定。
一些插件,比如shared_preferences,有一个提供模拟值的API。您可以对firebase_database 插件执行类似的操作,可以作为对第一方存储库的拉取请求,也可以通过在测试代码中调用MethodChannel.setMockMethodCallHandler 和BinaryMessages.handlePlatformMessage 来模拟本机端将执行的操作。
【讨论】:
flutter drive 对吗? Firebase 只是我遇到的第一个示例。其他插件的测试实际上会影响一些 Android 或 iOS 实现代码,它会是什么样子?我认为这只能在设备或模拟器上运行。 flutter drive 是在模拟器中运行测试的唯一方法,还是 flutter test 也可以这样做?
pub run test 支持平台android,但我不知道这是否与Flutter有任何关系。
flutter test 不能在实际设备上运行。