【问题标题】:Android: Unittest method which use FirebaseAndroid:使用 Firebase 的单元测试方法
【发布时间】:2016-04-18 17:06:29
【问题描述】:

问题描述

我需要对使用 Firebase 对象的函数进行单元测试,如下面的源代码所示。

问题

编写单元测试的最佳方式是什么? 真的需要对这样的功能进行单元测试吗?

源代码

void foo() { 
    Firebase f = new Firebase("url").child("child1").child("child2");
    if (f != null)
        f.setValue(state);
}

【问题讨论】:

    标签: android unit-testing firebase mockito powermock


    【解决方案1】:

    我不熟悉 Firebase 本身,但我会提取 interface 以获取与 Firebase 相关的所有内容,然后我将使用 Firebase 创建该 interface 的实现(例如 FirebaseData)。仅在接口上操作我会在不知道 Firebase 的实际实现的情况下测试我的逻辑。

    测试你的代码总是值得的,因为:

    1. 测试证明逻辑有效
    2. 帮助测试回归/重构
    3. 测试改进您的设计

    我真的推荐观看 J.B. Rainsberger Integrated tests are scam 的视频

    interface 上运行还有一个很大的优势:您始终能够在不违反合同的情况下更改您的实现。

    【讨论】:

    • jakubbialkowski:不完全是,正如视频本身所说,您还需要测试合同边界的“右侧”。因为——与谷歌应用引擎不同——目前不存在“本地”版本的 firebase(即,您可以作为单元测试的一部分在本地运行的 firebase 平台),您必须针对其中任何一个编写此类测试一个实际的生产firebase实例(恶心)或者创建一个未付费帐户并在那里尝试......这真的很糟糕。如果你能解决这个问题,请告诉我...我已经提出了这个问题,但 Firebase/Google 的任何人都没有回复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-15
    • 1970-01-01
    相关资源
    最近更新 更多