本文概述
- 模拟
- 存根
- 监控
- Stub和Mock之间的区别
使用模拟的主要功能是, 它可以完全控制模拟对象的行为。模拟对象通常用于行为验证。术语行为是指检查应用于对象的正确方法和路径。
模仿通常是通过使用库或模拟框架(如Mockito, JMock和EasyMock)来创建的。它用于测试存根不足的大量测试。模拟的基本功能之一是, 我们可以验证给定方法的调用次数。
以下代码段显示了如何使用模拟()。
ToDoService doService = mock(ToDoService.class);
存根存根是保存预定义数据并在测试过程中使用它提供响应的对象。换句话说, 存根是一个类似于真实对象的对象, 它具有测试所需的最少方法。当我们不想使用会对真实数据做出响应的对象时, 就会使用存根。存根被认为是最轻的, 并且测试的最静态版本加倍。
【模拟与存根与监控】存根的主要功能是:
- 无论输入如何, 它总是返回预定义的输出。
- 它可以用来类似于数据库对象。
- 存根用于减少在创建真实对象期间发生的复杂性。它们主要用于执行状态验证。
当我们有一个装满方法的巨大类并且想要模拟某些方法时, 监控很有用。在这种情况下, 我们应该更喜欢使用监控而不是模拟和存根。如果方法没有存根, 它将调用实际的方法行为。
在Mockito中, spy()方法用于创建监控对象。它允许我们调用真实对象的常规方法。以下代码段显示了如何使用spy()方法。
List spyArrayList = spy(ArrayList.class);
Stub和Mock之间的区别
参数 | 存根 | 模拟 |
---|---|---|
数据源 | 存根的数据源是硬编码的。它通常与测试套件紧密耦合。 | 模拟中的数据由测试设置。 |
由… 制作 | 存根通常是手写的, 有些是由工具生成的。 | 通常使用第三方库(例如Mockito, JMock和WireMock)来创建模拟。 |
用法 | 存根主要用于简单的测试套件。 | 模拟程序主要用于大型测试套件。 |
Graphics User Interface (GUI) | 存根没有GUI。 | 模拟者具有GUI。 |
参数 | 模拟 | 监控 |
---|---|---|
用法 | 模拟用于创建完全模拟或虚拟对象。它主要用于大型测试套件中。 | 监控用于创建部分或一半的模拟对象。像模拟一样, 监控也用于大型测试套件中。 |
默认行为 | 使用模拟对象时, 方法的默认行为(不加桩时)为不执行任何操作(不执行任何操作)。 | 使用监控对象时, 方法的默认行为(未加桩时)是实际的方法行为。 |
推荐阅读
- Mockito框架教程入门介绍
- Godot中的动画设计实例
- Mockito的方法
- Godot启动屏幕设计实例图解(2)
- Godot中的SceneTree
- Godot启动屏幕设计实例图解
- 设计与控制节点的接口
- Progressive Web App(PWA)介绍
- Android 自动化