术语 | 解释 |
---|---|
SUT(System Under Test) | 被测系统 |
DOC(depended-on component) | 第三方依赖组件 |
简介&理解
TestDouble 简单理解就是测试替身,在多数情况下,我们的系统能够正常运行,不仅仅依托系统本身,还需要依赖一些外部服务,比如其他系统提供的 http、rpc 服务,系统自身以来的像 redis 缓存服务或者 mysql 这类数据库服务。在微服务场景下,业务按照业务领域将一个系统拆分为多个系统,系统之间的交互不仅仅是简单的 A->B,可能是 A ->B -> C ->D,对于编写单元测试的开发者来说,当我需要编写系统A 的测试用例时,不可能去构建完整的调用链路,那么在测试工程中,通常会以 “测试替身” 来解决外部依赖所带来的测试复杂性问题。
在进行单元测试时,使用 Test Double 最主要的目的就是减少被测试对象的依赖,使得测试更加单一,只需要关注在被测系统本身的一些测试场景;除此之外, Test Double 从某种角度来说,可以让测试案例执行的测试时间更短,运行也更稳定(替代了真实的外部依赖)。
Test Double 和实际交付使用的实际对象还是存在本质差别的,所以在实际的测试过程中,不建议 Test Double 的过度使用,因为可能会造成测试场景和实际场景脱节。
测试替身类型
测试替身主要包括以下几种类型&