以下是我对它们的理解:
"伪造":一个实现了接口但只包含固定数据和没有逻辑的类。根据实现返回"好"或"坏"的数据。
"模拟":一个实现了接口的类,允许动态设置特定方法返回的值/抛出的异常,并提供检查特定方法是否调用/未调用的能力。
"桩":类似于模拟类,但它不提供验证方法是否调用/未调用的能力。
生成方式如下:
- "模拟"和"桩"可以手动生成,也可以由模拟框架生成。 - "伪造类"需要手动生成。
使用方式如下:
- 模拟对象主要用于验证我的类与依赖类之间的交互。
- 存根一旦我验证了交互并测试了代码中的替代路径。
- 虚拟类主要用于抽象出数据依赖,或者当模拟对象/存根设置每次都太繁琐时。