`
zhangjijun
  • 浏览: 35885 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Mockito工具的简单实用方法,编写用例时无需为底层或尚未实现的接口临时实现一个类,附上简单教程以供参考

 
阅读更多

MOCK的好处主要是在于以下几方面:

1.用例不依赖外部环境(文件系统,操作系统等)

2.用例不依赖外部实现

3.TDD中预先模拟周边模块实现而无需编写一个完整的类

入门

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

在任何应用Mockito的地方,

加上如下片段:

Java代码   
1.  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));    
   
 模拟方法调用的返回值  
   
Java代码   
1.  // 模拟获取第一个元素时,返回字符串first    
2.  when(mockedList.get(0)).thenReturn("first");    
3.      
4.  // 此时打印输出first    
5.  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));    
 没有返回值类型的方法也可以模拟异常抛出:  
  
Java代码   
1.  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));    
 更灵活的参数匹配,请参见http://mockito.googlecode.com/svn/branches/1.6/javadoc/org/mockito/Matchers.html  
  
验证方法调用次数  
Java代码   
1.  // 调用add一次    
2.  mockedList.add("once");    
3.      
4.  // 下面两个写法验证效果一样,均验证add方法是否被调用了一次    
5.  verify(mockedList).add("once");    
6.  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。

分享到:
评论

相关推荐

    JAVA接口自动化测试MyBatis+MySQL实现用例管理

    我们可以创建一个测试类,为每个接口编写对应的测试方法,利用HTTP客户端如HttpURLConnection或Apache HttpClient来模拟客户端请求。 MyBatis作为数据访问层,可以帮助我们更方便地操作MySQL数据库。在自动化测试中...

    mockito中文文档.zip

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

    Mockito-Programming-Cookbook

    **Mockito** 是一个开源的 Java 测试框架,它被设计用于帮助开发者创建模拟对象(mock objects),以便于进行单元测试,支持 **Test-Driven Development (TDD)** 和 **Behavior Driven Development (BDD)** 的开发...

    mockito-1.9.5.zip

    这是Mockito库的JAR文件,包含了Mockito的所有类和方法,供项目引用以使用Mockito框架。 5. **LICENSE 和 NOTICE**: 这两个文件分别包含了Mockito的许可协议和版权信息,确保你在使用时遵循正确的开源许可条款。...

    Junit4.12+mockito

    **Mockito** 是另一个重要的工具,它是一个模拟(Mocking)库,允许开发者在测试中创建并控制对象的行为,尤其是那些难以在孤立环境中操作的依赖对象。Mockito.jar 包含了实现这一功能的所有类和方法。在单元测试中...

    Junit测试 简单用例

    3. 编写测试用例:以`testCase`为例,可以定义一个测试整数加法的测试用例: ```java @Test public void testAdd() { int result = add(1, 2); assertEquals(3, result); } ``` 这个测试用例会调用`add`方法并检查...

    mockito-sample:在JUnit测试用例中如何使用Mockito创建模拟对象的快速示例

    在本示例中,我们可能会看到如 `@Test` 注解,它标记了一个方法为测试方法,以及 `assertEquals` 或 `assertNull` 等断言方法,用于验证代码行为。 **Mockito** Mockito 是一个模拟框架,它允许我们在测试中替换...

    springboot helloworld程序(带简单测试用例)

    这个程序旨在展示如何快速地搭建一个基于SpringBoot的应用,并包含简单的测试用例来验证功能。以下将详细讲解SpringBoot的基本概念、HelloWorld程序的构建过程以及测试用例的重要性。 SpringBoot是由Pivotal团队...

    Mockito+Junit5测试方法实践

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

    JUnit测试用例编写深度剖析.rar

    1. 创建测试类:在Java类中定义一个公共类,命名为待测试类名加"Test"。 2. 编写测试方法:在测试类中,每个测试方法都应独立且自包含,以确保测试的隔离性。 3. 使用注解:@Test注解标记测试方法,可以添加expected...

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

    `when(...).thenReturn(...)`语句定义了`userRepository.getUserById`方法的行为,当被调用时返回一个预设的`User`对象。最后,`Assert.assertEquals`验证了`userService.getUserById`的返回值是否符合预期。 在...

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

    Spring集成TestNG与Mockito框架单元测试方法的文档详细介绍了如何在Java Spring项目中,利用TestNG和Mockito框架进行单元测试。这种测试方法可以帮助开发者快速上手单元测试,并确保代码质量。文档涉及了多个方面,...

    测试用例8-10个

    "测试用例8-10个"可能指的是一个项目或教程中提供的多个测试用例,这些用例旨在覆盖各种输入情况,以确保代码的全面性和可靠性。 "单元测试网上资料汇集"标签表明这个压缩包可能包含了一系列与单元测试相关的资源,...

    JUnit in java 真正的测试用例实战.doc

    - 测试方法:以`test`开头的方法,每个方法对应一个特定的测试场景,调用待测试的方法并验证其结果。 在生成的测试类中,`fail("尚未实现");`表示该测试方法尚未编写具体测试逻辑,需要根据实际代码功能进行实现。...

    Java_Mockito初学者教程.zip

    单元测试是软件开发过程中的一个关键部分,它允许程序员对代码的各个独立部分进行验证,确保它们按预期工作。Mockito就是为了解决在单元测试中处理依赖问题而诞生的。 Mockito的核心概念是“mock对象”。在实际开发...

    Mockito Cookbook

    《Mockito Cookbook》是一本专注于Java单元测试的实用指南,特别强调了Mockito框架的使用。Mockito是一款广泛应用于Java开发中的测试驱动开发(TDD)工具,它允许开发者创建和配置模拟对象,以便在测试中隔离代码并...

    使用用例场景设计测试用例 测试 软件工程 JUnit

    2. **创建测试类**:为待测试的函数或类创建一个测试类,该类通常以"Test"作为后缀。 3. **编写测试方法**:每个测试方法对应一个测试用例,使用@Test注解标记,并在方法体内调用被测函数,然后使用断言方法检查结果...

    测试用例demo

    1. **独立性**:测试用例应彼此独立,一个测试用例的失败不应影响其他用例。 2. **全面性**:尽可能覆盖所有可能的输入和边界条件,确保代码的各个分支都能被测试到。 3. **可重复性**:每次执行同一测试用例,应...

    java测试必备工具【用例】

    - Mockito:一个模拟对象框架,允许在测试中隔离依赖,只关注要测试的代码部分。 - Spring Boot Test:针对Spring Boot应用的集成测试库,可以轻松地测试服务、控制器等。 3. 自动化测试工具: - Selenium:用于...

    单元测试用例

    这样的实践被称为测试驱动开发(TDD)或行为驱动开发(BDD),它强调先编写测试用例,再实现代码,以确保需求的准确实现。 为了编写有效的单元测试,我们需要遵循以下原则: 1. **单一性**:每个测试用例应专注于...

Global site tag (gtag.js) - Google Analytics