Mockito是一个针对Java的mocking框架,它与EasyMock和jMock很相似,但是通过在执行后校验什么已经被调用,它消除了对期望 行为(expectations)的需要。其它的mocking库需要你在执行前记录期望行为(expectations),而这导致了丑陋的初始化代码。
Mockito是现在比较流行的mock框架。
什么是mock?说的直白一点,大家都知道unit test应该是尽可能独立的。对一个class的unit test不应该再和其他class有任何交互。
假设现在有一个类,扫描一个目录并将找到的文件都上传到FTP server。该类对于不同的FTP响应(找不到FTP server 或 上传成功,或上传失败),有一些后续操作。在写这个类的UT时,我们就必须虚构出来一个FTP对象。这样在UT中,这个虚构的对象能够代替真正的FTP,对被测试类的调用做出一定的响应。从而知道被测试类是否正确的调用了FTP并做出一些正确的期望的响应,从而达到测试的目的。mock可以模拟各种各样的对象,从而代替真正的对象做出希望的响应。
下面介绍mockito的基本使用方法,我们需要创建一个mock对象来代替真的对象,步骤如下:
第一步:模拟对象,模拟对象使用mock()。
第二步:指定mock对象被调用时的返回值,比如指定让mockFTP对象第一次被调用时返回"找不到FTP server",这一步一般称为stubbing。一般是when(mockedList.get(0)).thenReturn("first")的样子。
第三步:验证被测试类是否正确工作是第三步,使用verify(),例如,验证当mockFTP对象返回"找不到FTP server"时,测试代码是否按要求重试。
一.引入mockito相关的类
import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; import org.mockito.MockitoAnnotations;对于times、verify、when等,需通过如下静态方式引入
import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when;二.模拟对象
// 模拟LinkedList 的对象 LinkedList mockedList = mock(LinkedList.class); // 此时调用get方法,是会返回null,因为还没有对方法调用的返回值做模拟 System.out.println(mockedList.get(999));三.模拟方法调用的返回值
相关推荐
在入门篇的学习中,我们会涉及以下几个核心知识点: 1. **自动配置**:SpringBoot的核心特性之一就是自动配置,它根据项目依赖来自动设置Bean。例如,如果你引入了数据访问相关的库,SpringBoot会自动配置数据源和...
### JUnit4学习笔记——入门篇 #### 一、配置MyEclipse在项目中引入JUnit4.jar包 在使用JUnit4进行单元测试之前,首先需要确保开发环境已正确配置JUnit库。对于使用MyEclipse IDE的开发者来说,可以通过以下步骤...
在本篇【springBoot笔记二-来自于百度文库1】中,主要讲解了Spring Boot的基础概念、核心特性以及如何创建一个简单的Spring Boot项目。以下是详细的知识点解析: 1. **Spring Boot简介**: - Spring Boot是Spring...
在本篇【学习Spring(一)入门】的学习中,我们将探讨Spring框架的基础知识,这是一个广泛应用于Java企业级应用的开源框架。Spring以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented ...
12. spring-boot-starter-test:用于测试 Spring Boot 应用程序,包括 JUnit、Hamcrest 和 Mockito 13. spring-boot-starter-webflux:用于构建 WebFlux 应用程序,使用 Spring 框架的响应式 Web 框架 总结 Spring...
在本篇中,我们将探索如何创建并运行你的第一个 Spring Boot 应用程序。 1. **快速入门:创建项目** 要开始一个 Spring Boot 项目,你可以使用 Spring Initializr(https://start.spring.io/)。这是一个在线工具...
这篇入门笔记将带你深入了解JUnit的基本概念、使用方法以及其在实际开发中的应用。 **一、JUnit简介** JUnit是一个开源的、基于Java的测试框架,它简化了对代码进行单元测试的过程。通过JUnit,开发者可以快速地...
本文档旨在为初学者提供一份全面且易懂的Mock技术入门指南。Mock技术在软件测试领域扮演着至关重要的角色,尤其是在单元测试过程中,它帮助我们模拟复杂的依赖关系,使得测试更加简单有效。本教程将详细介绍如何使用...
**Spring 框架概述** Spring 是一个开源的 Java 应用框架,它以其轻量级、模块化和面向切...希望这篇入门笔记能为你开启 Spring 的探索之旅,欢迎在学习过程中发现错误或有任何疑问时,通过博主的博客进行交流和指正。
这篇博文通过一步步的教程,将引导我们深入了解如何使用Spring MVC构建一个简单的Web应用。 首先,我们需要了解Spring MVC的基本组件和它们的作用: 1. **DispatcherServlet**:这是Spring MVC的前端控制器,负责...
《Spring 3 MVC 分析与实践 - 零基础入门及深入探讨》 Spring MVC作为Spring框架的重要组成部分,是Java Web开发中广泛采用的模型-视图-控制器(MVC)架构模式。本系列教程分为Part 1和Part 2,旨在帮助开发者从零...
#### 一、工具篇:奠定Java学习基础的关键 ##### 1. JDK(Java Development Kit):Java的核心与起点 JDK,作为Java技术栈的核心,包含了Java运行环境(JRE)、一系列Java工具以及基本的类库(rt.jar)。掌握JDK,...
#### 一、Spring Boot基础篇 ##### 1.1 Spring Boot简介 - **定义**:Spring Boot是由Pivotal团队提供的全新框架,其设计目标是简化新Spring应用的初始搭建以及开发过程。 - **特点**: - 约定优于配置(Convention...
Java是一种广泛使用的高级编程语言,尤其在企业级应用、Web开发和大数据处理领域有着重要的地位。本学习路线针对想要深入Java技术,特别是对项目开发、Web方向和大数据方向感兴趣的学员设计,旨在帮助他们构建全面而...
《SpringSide 4快速入门详解》 SpringSide 4 是一个基于Java的开源项目,它为Spring框架提供了一套简洁、规范的开发实践。在快速发展的IT行业中,SpringSide 4以其高效、易于理解的特性,深受广大Java开发者喜爱。...
4. `JUnit单元测试Mock技术之jMock用法介绍.html`和`jMock简单入门.html`:jMock是另一个Mocking库,它提供了基于接口的Mocking功能,适用于Java应用。这两个文件可能详细介绍了如何在JUnit测试中使用jMock。 5. `...
而“工具”标签可能是指博客中提及的一些开发辅助工具,例如IDEA(IntelliJ IDEA)作为Java开发的主流IDE,Maven或Gradle作为构建工具,Git作为版本控制系统,以及可能的调试、测试工具,如JUnit和Mockito等。...
这个压缩包中的449篇文章,将为学习者提供一个全面而系统的Java学习路径,从入门到精通,逐步提升编程技能。每个主题都可能包含实例代码、解析和实践建议,帮助读者理论结合实践,真正掌握Java编程。对于那些希望在...