不会拔毫毛变小猴子的行者,不是好行者;不会用替身做单元测试的程序员,不是好程序员。 单元测试的核心技术是替身(mock )。可以手工写一个专用于特定测试用例的替身派生类。但是,基于透明代理技术的替身能让你事半功倍。基本上各种语言,甚至包括C++语言, 都有开源的替身框架,提供基于透明代理的替身生成技术。 代码的可测试性要求依赖子系统的接口设计大量使用抽象和虚拟修饰,以便替生派生接口的生成。一个系统的可测试程度取决于子系统间的接口设计形态。