`
baowp
  • 浏览: 98848 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

junit单元测试2: mockito基础使用

    博客分类:
  • java
阅读更多

接上篇,如果需要mock一个接口,testng可以使用jmockit;对于junit使用mockito是个很好的选择。以下给个例子

package com.github.baowp.domain.service;

import com.github.baowp.domain.entity.BookEntity;
import com.github.baowp.domain.repository.BookRepository;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.annotation.Resource;

import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.*;

/**
 * Created with IntelliJ IDEA.
 * User: baowp
 * Date: 12/7/13
 * Time: 10:26 AM
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = "BookServiceTest-context.xml")
public class BookServiceMockTest {
    @Resource
    @InjectMocks//如果bookService里直接引用bookRepository,则可以mock后的bookRepository注入
    private BookService bookService;
	
    @Mock//要进行mock的对象
    private BookRepository bookRepository;

    /**
     * 使@Mock注释的对象能够生成mock后的实例
     */
    @Before
    public void mockitoInitialize() {
        MockitoAnnotations.initMocks(this);
    }

    @Test
    public void testInsert() {
        BookEntity book = new BookEntity();
        book.setTitle("title");
        book.setPrice(1.1f);

	//设置期望返回
        when(bookRepository.insert(book)).thenReturn(2);

        int flag = bookService.insert(book);
        assertEquals(2, flag);
	verify(bookRepository,times(1)).insert(book);//验证insert接口是否调用一次
    }
}

 

maven usage:

<dependency>
	<groupId>org.mockito</groupId>
	<artifactId>mockito-all</artifactId>
	<version>1.9.0</version>
	<scope>test</scope>
</dependency>

 

这是一个基础的mock使用,@Mock对象只在spring bean直接引用的时候生效,如果bookService起用了事务有了代理,又或是bookService是引用了别的对象A,A再引用bookRepository,就会mock失效。

分享到:
评论

相关推荐

    Junit 单元测试完整案例

    2. 使用Mockito:Mockito是一个流行的Java模拟框架,可以帮助我们模拟依赖,使测试更隔离。 3. `struts2-junit-plugin`:Struts2提供了JUnit插件,可以简化Struts2应用的测试,允许直接调用Action方法进行测试。 4...

    Mockito+Junit5测试方法实践

    内容概要:参考Mockito官方API文档,实践框架每个特性。 适合人群:Mockito入门人员以及想全面熟悉Mockito特性的人员,做到了开箱即用。...使用建议:使用前安装好Maven及Java即可,推荐使用VSCode编辑。

    junit单元测试jar包集

    这里提到的四个文件是Java开发中常用的单元测试框架和库,分别是JUnit、DBUnit、Unitils和Mockito。让我们逐一深入探讨它们的功能和使用方法。 **JUnit** 是Java领域中最广泛使用的单元测试框架,这里的`junit-4.11...

    Junit4.12+mockito

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

    Java-Junit-Mockito

    Green Bar和assertEquals步骤04:重构您的第一个JUnit测试步骤05:第二个JUnit示例assertTrue和assertFalse步骤06:@Before @After步骤07:@BeforeClass @AfterClass步骤08:比较JUnit测试中的数组步骤09:测试...

    Junit + Hamcrest + Mockito 单元测试 Jar包

    本资源包含的"Junit + Hamcrest + Mockito 单元测试 Jar包"是一个用于Java应用程序单元测试的工具集合,分别对应了三个流行的测试框架:JUnit、Hamcrest和Mockito。 JUnit是一个开源的Java单元测试框架,广泛应用于...

    spring MVC junit 单元测试(controller)

    2. **创建MockMVC对象**:使用`MockMvcBuilders.standaloneSetup()`或`MockMvcBuilders.webAppContextSetup()`创建一个MockMVC实例。前者基于单个Controller,后者基于整个WebApplicationContext。 3. **编写测试...

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

    在本文中,我们将深入探讨"PowerMock+Mockito-junit测试套件1.6.3版本"中的关键概念、功能和使用方法。 **PowerMock** PowerMock是一个扩展了其他Mocking框架(如EasyMock和Mockito)的库,它允许开发者对静态方法...

    基于Springboot+Junit+Mockito做单元测试的示例

    本文将从多个角度详细介绍如何使用Springboot、Junit和Mockito进行单元测试,并以实例代码演示。以下是本文的知识点总结: 一、单元测试的重要性 单元测试是软件测试的一种,以验证软件的每个单元是否能够在各种...

    Android代码-Android中必要的一环—单元测试

    Android单元测试(一):JUnit框架的使用 Android单元测试(二):Mockito框架的使用 Android单元测试(三):PowerMock框架的使用 Android单元测试(四):Robolectric框架的使用 Android单元测试(五):网络接口...

    单元测试之道Java版:使用JUnit

    《单元测试之道Java版:使用JUnit》是一本深入讲解如何在Java开发中运用JUnit进行高效自动化测试的专业书籍。JUnit作为Java领域最广泛使用的单元测试框架,对于任何希望提升软件质量、确保代码健壮性的开发者来说,...

    JUnit单元测试.zip

    2. **创建测试类和测试方法**:介绍如何使用JUnit注解来创建测试类和测试方法,以及如何组织测试结构。 3. **断言和匹配器**:详细说明各种断言方法和Hamcrest匹配器的使用,以及它们在测试中的作用。 4. **测试执行...

    junit单元测试及Mock应用,超详细的PPT实战应用

    总结来说,本文档提供的内容涵盖了单元测试的基本概念、Mock技术的运用、JUnit框架的详细讲解,以及Mockito、MockMVC和Mock.js等工具的使用。通过这些知识,开发者可以构建更健壮的测试体系,提升代码质量和软件工程...

    Junit单元测试指南

    本指南将深入探讨Junit的使用,帮助你掌握如何编写、运行和理解单元测试。 一、Junit简介 Junit是一个开源的Java测试框架,由Ernst Leiss和Kent Beck共同创建。它基于xUnit测试框架家族,为Java程序员提供了一种...

    Spring 单元测试项目:含 JUnit 和 Mockito 使用示例及相关测试知识.zip

    1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,...

    mockito-1.9.5.zip

    当我们进行单元测试时,Mockito 和 JUnit 结合使用可以创建高效且易于维护的测试代码。 1. **Mockito 框架**: Mockito 允许开发者创建模拟对象(mock objects)来代替真实的依赖,这样在测试中就可以控制这些依赖...

    junit单元测试框架

    在“22_android下junit测试框架配置.avi”这个视频文件中,很可能是详细讲解了如何在Android项目中配置和使用JUnit进行单元测试,包括添加依赖、创建测试类、编写测试方法,以及如何运行和查看测试结果。观看这个...

    junit单元测试架包及依赖集成版(包含hamcrest-all-1.3.jar、junit-4.12.jar、mockito-all-1.10.19.jar)

    junit单元测试所需架包及依赖集成版(包含hamcrest-all-1.3.jar、junit-4.12.jar、mockito-all-1.10.19.jar),引入项目即可直接使用,不依赖网络 使用教程及自动化测试示例 请看...

    junit单元测试

    在Android开发中,结合使用JUnit和Mockito(一个模拟框架)可以创建隔离的单元测试,模拟复杂的依赖关系,确保测试结果的准确性。同时,AndroidJUnitRunner和Espresso可以用来进行UI测试,检查用户界面的行为和交互...

    Junit单元测试(很经典)

    2. **参数化测试**:使用`@Parameters`和`@Test`结合,可以为测试方法提供多组输入参数,实现参数化的单元测试。 3. **超时测试**:`@Test(timeout = milliseconds)`可以设置测试方法的执行时间限制,超过设定时间...

Global site tag (gtag.js) - Google Analytics