接上篇,如果需要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失效。
相关推荐
2. 使用Mockito:Mockito是一个流行的Java模拟框架,可以帮助我们模拟依赖,使测试更隔离。 3. `struts2-junit-plugin`:Struts2提供了JUnit插件,可以简化Struts2应用的测试,允许直接调用Action方法进行测试。 4...
内容概要:参考Mockito官方API文档,实践框架每个特性。 适合人群:Mockito入门人员以及想全面熟悉Mockito特性的人员,做到了开箱即用。...使用建议:使用前安装好Maven及Java即可,推荐使用VSCode编辑。
这里提到的四个文件是Java开发中常用的单元测试框架和库,分别是JUnit、DBUnit、Unitils和Mockito。让我们逐一深入探讨它们的功能和使用方法。 **JUnit** 是Java领域中最广泛使用的单元测试框架,这里的`junit-4.11...
在这个压缩包中,包含的是两个关键工具:JUnit 4.12 和 Mockito,它们是Java开发中广泛使用的单元测试框架。 **JUnit** 是一个开源的Java单元测试框架,它的版本4.12提供了许多增强的功能,包括注解(Annotation)...
Green Bar和assertEquals步骤04:重构您的第一个JUnit测试步骤05:第二个JUnit示例assertTrue和assertFalse步骤06:@Before @After步骤07:@BeforeClass @AfterClass步骤08:比较JUnit测试中的数组步骤09:测试...
本资源包含的"Junit + Hamcrest + Mockito 单元测试 Jar包"是一个用于Java应用程序单元测试的工具集合,分别对应了三个流行的测试框架:JUnit、Hamcrest和Mockito。 JUnit是一个开源的Java单元测试框架,广泛应用于...
2. **创建MockMVC对象**:使用`MockMvcBuilders.standaloneSetup()`或`MockMvcBuilders.webAppContextSetup()`创建一个MockMVC实例。前者基于单个Controller,后者基于整个WebApplicationContext。 3. **编写测试...
在本文中,我们将深入探讨"PowerMock+Mockito-junit测试套件1.6.3版本"中的关键概念、功能和使用方法。 **PowerMock** PowerMock是一个扩展了其他Mocking框架(如EasyMock和Mockito)的库,它允许开发者对静态方法...
本文将从多个角度详细介绍如何使用Springboot、Junit和Mockito进行单元测试,并以实例代码演示。以下是本文的知识点总结: 一、单元测试的重要性 单元测试是软件测试的一种,以验证软件的每个单元是否能够在各种...
Android单元测试(一):JUnit框架的使用 Android单元测试(二):Mockito框架的使用 Android单元测试(三):PowerMock框架的使用 Android单元测试(四):Robolectric框架的使用 Android单元测试(五):网络接口...
《单元测试之道Java版:使用JUnit》是一本深入讲解如何在Java开发中运用JUnit进行高效自动化测试的专业书籍。JUnit作为Java领域最广泛使用的单元测试框架,对于任何希望提升软件质量、确保代码健壮性的开发者来说,...
2. **创建测试类和测试方法**:介绍如何使用JUnit注解来创建测试类和测试方法,以及如何组织测试结构。 3. **断言和匹配器**:详细说明各种断言方法和Hamcrest匹配器的使用,以及它们在测试中的作用。 4. **测试执行...
总结来说,本文档提供的内容涵盖了单元测试的基本概念、Mock技术的运用、JUnit框架的详细讲解,以及Mockito、MockMVC和Mock.js等工具的使用。通过这些知识,开发者可以构建更健壮的测试体系,提升代码质量和软件工程...
本指南将深入探讨Junit的使用,帮助你掌握如何编写、运行和理解单元测试。 一、Junit简介 Junit是一个开源的Java测试框架,由Ernst Leiss和Kent Beck共同创建。它基于xUnit测试框架家族,为Java程序员提供了一种...
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,...
当我们进行单元测试时,Mockito 和 JUnit 结合使用可以创建高效且易于维护的测试代码。 1. **Mockito 框架**: Mockito 允许开发者创建模拟对象(mock objects)来代替真实的依赖,这样在测试中就可以控制这些依赖...
在“22_android下junit测试框架配置.avi”这个视频文件中,很可能是详细讲解了如何在Android项目中配置和使用JUnit进行单元测试,包括添加依赖、创建测试类、编写测试方法,以及如何运行和查看测试结果。观看这个...
junit单元测试所需架包及依赖集成版(包含hamcrest-all-1.3.jar、junit-4.12.jar、mockito-all-1.10.19.jar),引入项目即可直接使用,不依赖网络 使用教程及自动化测试示例 请看...
在Android开发中,结合使用JUnit和Mockito(一个模拟框架)可以创建隔离的单元测试,模拟复杂的依赖关系,确保测试结果的准确性。同时,AndroidJUnitRunner和Espresso可以用来进行UI测试,检查用户界面的行为和交互...
2. **参数化测试**:使用`@Parameters`和`@Test`结合,可以为测试方法提供多组输入参数,实现参数化的单元测试。 3. **超时测试**:`@Test(timeout = milliseconds)`可以设置测试方法的执行时间限制,超过设定时间...