跳到主要内容

关于“测试替身”的一些概念说明

在电影制作过程中,主角有时候在拍摄一些可能有风险或危险的镜头时,他们会雇佣一名“特技替身”来代替自己。特技替身是一个训练有素的人,且在某方面与演员相似,当在特定的场景中,我们几乎很难分别谁是替身,谁是主角。

测试替身(Test Double)是一种常用的测试手段,为了替代测试对象的第三方依赖,以此来保持测试对象的可测试性与测试效率。

从概念上来讲,被测试物体(SUT, System Under test)在进行单元测试的过程中,常常会依赖一些第三方组件(DOC, Depended-On Component),而这个依赖常常无法获取,或者是执行会产生不良的副作用,为了对 SUT 内部的行为进行管控,我们就不能使用真正的 DOC,而是使用 Test Double 来替代它,这样一来一切既符合预期,又能简单高效地测试不同的场景。

image

对于 Test Double,我们可以再进行下面的细化区分。

Dummy

Stub

Fake

Spies

Mocks

参考