软件工程 |模拟(介绍)
Mock 是一个克隆真实对象行为的对象。即使后端不可用,它也基本上通过测试隔离单元来用于单元测试。
为什么我们使用 MOCK 对象?
单元测试的目的是批准设计的每个软件单元,并验证生成的代码是否完美运行,相互依赖于外部依赖项。在大多数情况下,被测代码具有一些外部依赖项,例如 API,创建模拟对象而不是在依赖项的真实对象上生成测试用例会更好。
Web 应用程序由两个组件组成:前端和后端服务器,它们相互依赖并同时运行。前端的开发人员依赖于后端开发人员的服务器、API 和其他外部服务。在测试或开发阶段,一个主要挑战是处理各种外部依赖项。
Real Environment 通过服务器交换数据,其中用户端服务由另一台服务器处理,管理服务由另一台服务器处理。开发人员在开发软件时面临困难。另一方面,当软件依赖于外部依赖时,测试人员无法进行有效的单元测试。为了提供有效的测试,需要模拟服务器。模拟服务器消除了对真实服务器的依赖,允许测试人员独立进行测试。图给出了 Mock 服务器的虚拟表示。
现在,为了有效地利用我们的时间和改进测试机制,需要一个模拟服务器,就像一个真实的服务器一样,模仿它的依赖关系。一些可用于单元测试Java应用程序的模拟框架是 Jmock、Mockito、EasyMock。对于单元测试,可以通过模拟所需的接口来使用模拟对象代替真实对象。在基于接口的设计系统中,Mocks 最容易使用。
使用 Mock 对象进行单元测试需要遵循一些模式:
- 构建 Mock 对象的实例或对象。
- 在定义的环境下定义 Mock 对象的状态。
- 在模拟对象中设置期望、状态代码、响应、错误显示。
- 将 Mock 对象设置为域代码下的参数。
- 在单元测试下验证 Mock 对象。