问题描述
我需要对使用Firebase对象的函数进行单元测试,如下源代码所示。
问题
编写单元测试的最佳方式是什么?真的需要对这样的功能进行单元测试吗?
源代码
void foo() {
Firebase f = new Firebase("url").child("child1").child("child2");
if (f != null)
f.setValue(state);
}
我不熟悉Firebase本身,但我会为连接到Firebase的所有内容提取interface
,然后我会用Firebase创建该interface
的实现(例如FirebaseData
)。只在接口上操作,我会在不知道Firebase的真实实现的情况下测试我的逻辑。
测试代码总是值得的,因为:
- 测试证明逻辑有效
- 帮助测试回归/重构
- 测试可以改进您的设计
我真的建议看J.B.Rainsberger的视频综合测试是骗局
在interface
上操作还有一个很大的优势:您总是能够在不违反合同的情况下更改您的实现。