【问题标题】:How to run tests with code that depends on plugins?如何使用依赖于插件的代码运行测试?
【发布时间】:2018-03-05 02:23:52
【问题描述】:

我想通过直接访问 Firebase 来测试我的 Firebase 数据访问层。 flutter drive 是运行此类测试的唯一方法,还是有其他方法,例如使用 flutter test 在模拟器中运行? 有哪些可能的方法,我该如何设置它们?

【问题讨论】:

    标签: integration-testing flutter


    【解决方案1】:

    我目前不知道有什么方法可以使用 flutter test 与真实数据库通信,因为没有 Firebase SDK 可以与网络通信。无论如何,您可能都不希望这样做,因为如果数据更改或 Firebase 服务器不可访问,它可能会使您的测试变得不确定或不稳定。

    一些插件,比如shared_preferences,有一个提供模拟值的API。您可以对firebase_database 插件执行类似的操作,可以作为对第一方存储库的拉取请求,也可以通过在测试代码中调用MethodChannel.setMockMethodCallHandlerBinaryMessages.handlePlatformMessage 来模拟本机端将执行的操作。

    【讨论】:

    • 感谢您的回答。我同意这不适用于单元测试,但我想有一种方法来运行一些实际命中数据库的测试(不需要成为 CI 的一部分)。我认为这样做的唯一方法是使用flutter drive 对吗? Firebase 只是我遇到的第一个示例。其他插件的测试实际上会影响一些 Android 或 iOS 实现代码,它会是什么样子?我认为这只能在设备或模拟器上运行。 flutter drive 是在模拟器中运行测试的唯一方法,还是 flutter test 也可以这样做?
    • pub run test 支持平台android,但我不知道这是否与Flutter有任何关系。
    • 据我所知,flutter test 不能在实际设备上运行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 2016-02-04
    • 1970-01-01
    相关资源
    最近更新 更多