`
reb12345reb
  • 浏览: 50282 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多

Mockito入门

关键字: 单元测试 模拟

简介

 

InfoQ-使用Mockito 1.5监视普通对象 写道
Mockito是一个针对Java的mocking框架。它与EasyMock和jMock很相似,但是 通过在执行后校验什么已经被调用,它消除了对期望行为(expectations)的需要。其它的mocking库需要你在执行前记录期望行为 (expectations),而这导致了丑陋的初始化代码。

 

 更多信息请参考如下位置,

 原文链接:http://www.infoq.com/cn/news/2008/09/mockito-1.5

 官方网站:http://code.google.com/p/mockito/

 

入门

以下内容均参考至http://mockito.googlecode.com/svn/branches/1.6/javadoc/org/mockito/Mockito.html


在任何应用Mockito的地方,加上如下片段:
Java代码
  1. import   static  org.mockito.Mockito.*;  
import static org.mockito.Mockito.*;
 

模拟对象

 

Java代码
  1. // 模拟LinkedList 的对象   
  2. LinkedList mockedList = mock(LinkedList.class );  
  3.   
  4. // 此时调用get方法,是会返回null,因为还没有对方法调用的返回值做模拟    
  5. System.out.println(mockedList.get(999 ));  
// 模拟LinkedList 的对象
LinkedList mockedList = mock(LinkedList.class);

// 此时调用get方法,是会返回null,因为还没有对方法调用的返回值做模拟 
System.out.println(mockedList.get(999));

 

 

 模拟方法调用的返回值

 

Java代码
  1. // 模拟获取第一个元素时,返回字符串first   
  2. when(mockedList.get(0 )).thenReturn( "first" );  
  3.   
  4. // 此时打印输出first   
  5. System.out.println(mockedList.get(0 ));  
// 模拟获取第一个元素时,返回字符串first
when(mockedList.get(0)).thenReturn("first");

// 此时打印输出first
System.out.println(mockedList.get(0));
 

模拟方法调用抛出异常

Java代码
  1. // 模拟获取第二个元素时,抛出RuntimeException   
  2. when(mockedList.get(1 )).thenThrow( new  RuntimeException());  
  3.   
  4. // 此时将会抛出RuntimeException   
  5. System.out.println(mockedList.get(1 ));  
// 模拟获取第二个元素时,抛出RuntimeException
when(mockedList.get(1)).thenThrow(new RuntimeException());

// 此时将会抛出RuntimeException
System.out.println(mockedList.get(1));
 没有返回值类型的方法也可以模拟异常抛出:

Java代码
  1. doThrow( new  RuntimeException()).when(mockedList).clear();  
doThrow(new RuntimeException()).when(mockedList).clear();
 

模拟方法调用的参数匹配

Java代码
  1. // anyInt()匹配任何int参数,这意味着参数为任意值,其返回值均是element   
  2. when(mockedList.get(anyInt())).thenReturn("element" );  
  3.   
  4. // 此时打印是element   
  5. System.out.println(mockedList.get(999 ));  
// anyInt()匹配任何int参数,这意味着参数为任意值,其返回值均是element
when(mockedList.get(anyInt())).thenReturn("element");

// 此时打印是element
System.out.println(mockedList.get(999));

验证方法调用次数

Java代码
  1. // 调用add一次   
  2. mockedList.add("once" );  
  3.   
  4. // 下面两个写法验证效果一样,均验证add方法是否被调用了一次   
  5. verify(mockedList).add("once" );  
  6. verify(mockedList, times(1 )).add( "once" );  
// 调用add一次
mockedList.add("once");

// 下面两个写法验证效果一样,均验证add方法是否被调用了一次
verify(mockedList).add("once");
verify(mockedList, times(1)).add("once");
 还可以通过atLeast(int i)和atMost(int i)来替代time(int i)来验证被调用的次数最小值和最大值。

 

收尾

上面仅列举了一些常用的,更多用法和技巧还请详细参考http://mockito.googlecode.com/svn/branches/1.6/javadoc/org/mockito/Mockito.html 。让Mockito使测试驱动开发更有趣吧!
分享到:
评论

相关推荐

    mockito-core-2.15.0-API文档-中文版.zip

    赠送jar包:mockito-core-2.15.0.jar; 赠送原API文档:mockito-core-2.15.0-javadoc.jar; 赠送源代码:mockito-core-2.15.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-2.15.0.pom; 包含翻译后的API文档...

    mockito-core-4.0.0-API文档-中文版.zip

    赠送jar包:mockito-core-4.0.0.jar; 赠送原API文档:mockito-core-4.0.0-javadoc.jar; 赠送源代码:mockito-core-4.0.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-4.0.0.pom; 包含翻译后的API文档:...

    mockito-1.9.5.zip

    Mockito 是一个流行的Java单元测试框架,用于模拟对象行为,使得测试更为简洁和可控。JUnit则是最常用的Java单元测试库,它提供了一种结构化的方式来编写和运行测试用例。当我们进行单元测试时,Mockito 和 JUnit ...

    mockito-core-4.0.0-API文档-中英对照版.zip

    赠送jar包:mockito-core-4.0.0.jar; 赠送原API文档:mockito-core-4.0.0-javadoc.jar; 赠送源代码:mockito-core-4.0.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-4.0.0.pom; 包含翻译后的API文档:...

    powermock-api-mockito2-2.0.9-API文档-中英对照版.zip

    赠送jar包:powermock-api-mockito2-2.0.9.jar; 赠送原API文档:powermock-api-mockito2-2.0.9-javadoc.jar; 赠送源代码:powermock-api-mockito2-2.0.9-sources.jar; 赠送Maven依赖信息文件:powermock-api-...

    Junit4.12+mockito

    在这个压缩包中,包含的是两个关键工具:JUnit 4.12 和 Mockito,它们是Java开发中广泛使用的单元测试框架。 **JUnit** 是一个开源的Java单元测试框架,它的版本4.12提供了许多增强的功能,包括注解(Annotation)...

    mockito中文文档.zip

    Mockito 是一个流行的 Java 单元测试框架,用于模拟(mock)对象,使得开发者可以在测试代码中隔离依赖,专注于测试单个组件的行为。TDD(Test-Driven Development,测试驱动开发)是它常被结合使用的一种开发模式,...

    PowerMock+Mockito-junit测试套件1.6.3版本

    PowerMock和Mockito是两个非常流行的Java单元测试框架,结合JUnit,它们可以提供强大的测试能力。在本文中,我们将深入探讨"PowerMock+Mockito-junit测试套件1.6.3版本"中的关键概念、功能和使用方法。 **PowerMock...

    mockito-1.9.0.zip

    Mockito 是一个流行的Java单元测试框架,用于模拟对象行为,使得开发者可以在测试代码中独立于实际依赖进行工作。Mockito 1.9.0 是该框架的一个较早版本,但仍然包含许多核心功能,适用于那些对最新版本不敏感或者有...

    Mockito的重要入门资料

    ### Mockito的重要入门资料 #### 学习目标与背景 在软件开发过程中,单元测试作为确保代码质量的关键步骤之一,其重要性不言而喻。Mockito作为一种流行的单元测试框架,被广泛应用于Java项目的单元测试中。它通过...

    mockito-core-3.8.0-API文档-中文版.zip

    赠送jar包:mockito-core-3.8.0.jar; 赠送原API文档:mockito-core-3.8.0-javadoc.jar; 赠送源代码:mockito-core-3.8.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-3.8.0.pom; 包含翻译后的API文档:...

    Mockito-Programming-Cookbook

    ### Mockito Programming Cookbook 知识点概述 #### 一、Mockito 概览 **Mockito** 是一个开源的 Java 测试框架,它被设计用于帮助开发者创建模拟对象(mock objects),以便于进行单元测试,支持 **Test-Driven ...

    mockito-core-3.8.0-API文档-中英对照版.zip

    赠送jar包:mockito-core-3.8.0.jar; 赠送原API文档:mockito-core-3.8.0-javadoc.jar; 赠送源代码:mockito-core-3.8.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-3.8.0.pom; 包含翻译后的API文档:...

    mockito-core-3.1.0-API文档-中英对照版.zip

    赠送jar包:mockito-core-3.1.0.jar; 赠送原API文档:mockito-core-3.1.0-javadoc.jar; 赠送源代码:mockito-core-3.1.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-3.1.0.pom; 包含翻译后的API文档:...

    springboot + mockito 使用示例代码-原创

    在本文中,我们将深入探讨如何在Spring Boot项目中有效地使用Mockito进行单元测试。Mockito是一个流行的Java单元测试框架,它允许我们创建和配置模拟对象,以便在测试中隔离我们想要验证的代码部分。结合Spring Boot...

    mockito-core-3.9.0-API文档-中文版.zip

    赠送jar包:mockito-core-3.9.0.jar; 赠送原API文档:mockito-core-3.9.0-javadoc.jar; 赠送源代码:mockito-core-3.9.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-3.9.0.pom; 包含翻译后的API文档:...

    Mocks, Mockito, and Spock

    ### Mocks, Mockito, and Spock 在软件开发过程中,单元测试是确保代码质量的关键环节之一。为了提高单元测试的有效性和可维护性,开发者经常使用模拟对象(Mocks)来代替真实对象进行测试。本文将详细介绍Mocks的...

    Mockito+Junit5测试方法实践

    内容概要:参考Mockito官方API文档,实践框架每个特性。 适合人群:Mockito入门人员以及想全面熟悉Mockito特性的人员,做到了开箱即用。 能学到什么:“Mockito 4.6.0 + Junit 5”的组合编程。 使用建议:使用前安装...

    spring集成TestNG与Mockito框架单元测试方法

    TestNG和Mockito是两个在单元测试领域常用的工具,它们分别用于测试管理和模拟对象。本篇文章将深入探讨如何在Spring项目中集成TestNG和Mockito进行单元测试。 TestNG是一个强大的测试框架,它扩展了JUnit的功能,...

    mockito-core-2.15.0-API文档-中英对照版.zip

    赠送jar包:mockito-core-2.15.0.jar; 赠送原API文档:mockito-core-2.15.0-javadoc.jar; 赠送源代码:mockito-core-2.15.0-sources.jar; 赠送Maven依赖信息文件:mockito-core-2.15.0.pom; 包含翻译后的API文档...

Global site tag (gtag.js) - Google Analytics