测试替身的使用与实践
1. 测试替身的基本概念
测试替身可以简化测试过程,减少对间接依赖组件的了解。它能替代真实的协作者,从被测代码(CUT)的角度来看,测试替身就等同于协作者。不过,测试替身并非对被替换对象的完全模拟。就像特技替身和主演不同,特技替身擅长完成特定动作,比如从建筑物上跳下。不同的动作可能需要不同的替身,测试替身也是如此,它在特定情况下替代真实组件,这使得测试替身保持简单,远比被替换的对象简单。
测试替身能为 CUT 提供间接输入(返回值),或者捕获并检查 CUT 发送给它的间接输出(参数)。
2. 何时使用测试替身
并非所有交互都需要使用测试替身。基本原则是,能使用真实代码时就用真实代码,必须使用测试替身时再使用它。这需要根据具体情况判断何时使用测试替身。例如,若 CUT 使用链表作为协作者,就无需使用假链表,直接使用真实链表,在四阶段测试模式的验证阶段检查链表的添加、删除和修改操作是否正确。
以下是一些常见的使用测试替身的原因:
- 硬件独立性 :使用测试替身进行硬件交互测试,可以独立于硬件进行测试,还能向系统核心提供各种输入,而这些输入在实验室或现场可能难以实现或耗时过长。
- 注入难以产生的输入 :某些计算或硬件生成的事件场景可能难以产生。通过调整测试替身的返回结果,CUT 可能获得触发某些罕见执行路径所需的一切条件。
- 加速缓慢的协作者 :如果测试运行速度慢,可能会减少测试的频率。对于像数据库、网络服务或复杂计算等缓慢的协作者,可以通过返回测试用例控制的结果来模拟,从而
超级会员免费看
订阅专栏 解锁全文
59

被折叠的 条评论
为什么被折叠?



