`

Mockito单元测试实例

阅读更多

Mockito单元测试实例:

public class SettingServiceTest {
    
    private List<PersonDTO> personList = new ArrayList<PersonDTO>();
    
    @InjectMocks
    private SettingPojoService settingPojoService;
    
    @Mock
    private SettingDAO mockSettingDAO;

    @BeforeClass
    public static void prepareData() throws Exception {
    }
    
    @AfterClass
    public static void destoryData() throws Exception {
    }
    
    @Before
    public void setUp() throws Exception {
        
        MockitoAnnotations.initMocks(this); 
        
        PersonDTO personDTO1 = new PersonDTO();
        PersonDTO personDTO2 = new PersonDTO();
        PersonDTO personDTO3 = new PersonDTO();

        personDTO1.setDeptCode("BCDEF");
        personDTO1.setHanderCode("BIJIAN001");

        personDTO2.setDeptCode("HIJKL");
        personDTO2.setHanderCode("BIJIAN002");

        personDTO3.setDeptCode("OPQRS");
        personDTO3.setHanderCode("BIJIAN003");

        personList.add(personDTO1);
        personList.add(personDTO2);
        personList.add(personDTO3);
    }
    
    @After
    public void tearDown() throws Exception {
    }
    
    @Test
    public void test_queryHandlerCode_by_mock() {

        String departmentCode = "ABC";
        try {
            when(mockSettingDAO.queryHandlerCode(departmentCode)).thenReturn("BIJIAN");
            String code = settingPojoService.queryHandlerCode(departmentCode);
            verify(mockSettingDAO, times(1)).queryHandlerCode(departmentCode);
            Assert.assertEquals("BIJIAN", code);
        } catch (DAOException e) {
            Assert.fail(e.getLocalizedMessage());
        } catch (BusinessServiceException e) {
            Assert.fail(e.getLocalizedMessage());
        }
    }

    @Test
    public void test_savePerson_noral_list_by_mock() {
        
        try {
            settingPojoService.savePerson(personList);
            verify(mockSettingDAO).savePerson(personList.get(0));
            verify(mockSettingDAO).savePerson(personList.get(1));
            verify(mockSettingDAO).savePerson(personList.get(2));
            verify(mockSettingDAO, times(1)).savePerson(personList.get(0));
            verify(mockSettingDAO, times(1)).savePerson(personList.get(1));
            verify(mockSettingDAO, times(1)).savePerson(personList.get(2));
        } catch (DAOException e) {
            Assert.fail(e.getLocalizedMessage());
        } catch (BusinessServiceException e) {
            Assert.fail(e.getLocalizedMessage());
        }
    }
    
    @Test
    public void test_savePerson_null_list_by_mock() {

        PersonDTO personDTO1 = personList.get(0);
        personList = null;
        try {
            settingPojoService.savePerson(personList);
            verify(mockSettingDAO, times(0)).savePerson(personDTO1);
            verifyZeroInteractions(mockSettingDAO);
            verifyNoMoreInteractions(mockSettingDAO);
        } catch (PafaDAOException e) {
            Assert.fail(e.getLocalizedMessage());
        } catch (BusinessServiceException e) {
            Assert.fail(e.getLocalizedMessage());
        } 
    }
    
    @Test
    public void test_savePerson_list_only_contain_1_object_by_mock() {
        
        personList.remove(2);
        PersonDTO personDTO1 = personList.remove(1);
        try {
            settingPojoService.savePerson(personList);
            verify(mockSettingDAO, times(1)).savePerson(personList.get(0));
            verify(mockSettingDAO, times(0)).savePerson(personDTO1);
            verify(mockSettingDAO, never()).savePerson(personDTO1);
        } catch (DAOException e) {
            Assert.fail(e.getLocalizedMessage());
        } catch (BusinessServiceException e) {
            Assert.fail(e.getLocalizedMessage());
        } 
    }
    
    @Test
    public void test_deleteHandler_noral_list_by_mock() {
        
        try {
            settingPojoService.deleteHandler(personList);
            verify(mockSettingDAO).deleteHandler(personList.get(0));
            verify(mockSettingDAO).deleteHandler(personList.get(1));
            verify(mockSettingDAO).deleteHandler(personList.get(2));
            verify(mockSettingDAO, times(1)).deleteHandler(personList.get(0));
            verify(mockSettingDAO, times(1)).deleteHandler(personList.get(1));
            verify(mockSettingDAO, times(1)).deleteHandler(personList.get(2));
        } catch (DAOException e) {
            Assert.fail(e.getLocalizedMessage());
        } catch (BusinessServiceException e) {
            Assert.fail(e.getLocalizedMessage());
        }
    }
    
    @Test
    public void test_deleteHandler_null_list_by_mock() {

        PersonDTO personDTO1 = personList.get(0);
        personList = null;
        
        try {
            settingPojoService.deleteHandler(personList);
            verify(mockSettingDAO, times(0)).deleteHandler(personDTO1);
            verifyZeroInteractions(mockSettingDAO);
            verifyNoMoreInteractions(mockSettingDAO);
        } catch (DAOException e) {
            Assert.fail(e.getLocalizedMessage());
        } catch (BusinessServiceException e) {
            Assert.fail(e.getLocalizedMessage());
        } 
    }
    
    @Test
    public void test_deleteHandler_list_only_contain_1_object_by_mock() {
        
        personList.remove(2);
        PersonDTO personDTO1 = personList.remove(1);
        
        try {
            settingPojoService.deleteHandler(personList);
            verify(mockSettingDAO, times(1)).deleteHandler(personList.get(0));
            verify(mockSettingDAO, times(0)).deleteHandler(personDTO1);
            verify(mockSettingDAO, never()).deleteHandler(personDTO1);
        } catch (DAOException e) {
            Assert.fail(e.getLocalizedMessage());
        } catch (BusinessServiceException e) {
            Assert.fail(e.getLocalizedMessage());
        } 
    }
    
    @Test
    public void test_isDepartmentHandler_by_mock() {
        
        String code = "BIJIAN001";
        String departmentCode = "ABC";
        try {
            when(mockSettingDAO.isDepartmentHandler(code, departmentCode)).thenReturn(true);
            boolean res = settingPojoService.isDepartmentHandler(code, departmentCode);
            verify(mockSettingDAO, times(1)).isDepartmentHandler(code, departmentCode);
            Assert.assertEquals(true, res);
        } catch (DAOException e) {
            Assert.fail(e.getLocalizedMessage());
        } catch (BusinessServiceException e) {
            Assert.fail(e.getLocalizedMessage());
        } 
    }
}

 

分享到:
评论

相关推荐

    Java mockito单元测试实现过程解析

    Mockito 是一个流行的 Java 测试框架,它使得单元测试更加容易,特别是当处理依赖于其他组件或服务的代码时。本篇文章将深入解析如何使用 Mockito 实现 Java 单元测试。 首先,让我们看一个简单的例子,有一个名为 ...

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

    四、Mockito单元测试 Mockito是一个流行的Mocking框架,提供了mock对象的功能,可以用来模拟外部依赖项,例如数据库、Redis、外部服务等。 五、隔离外部依赖 在单元测试中,需要隔离外部依赖项,以避免外部依赖项...

    mockito单元测试

    ### Mockito 单元测试详解 #### 一、引言 在软件开发过程中,编写单元测试是一种常见的实践方式,用于确保代码质量与功能正确性。然而,在处理复杂的依赖关系时,传统的方法可能会遇到难题,比如当一个类依赖于多...

    android单元测试实例一

    本实例聚焦于Android应用中的单元测试,特别是针对登录界面及其相关功能的测试。我们将探讨如何构建和执行这些测试,以及使用到的相关工具和技术。 首先,单元测试通常使用JUnit框架进行,这是Java开发中的标准测试...

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

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

    junit4单元测试实例

    本篇文章将深入探讨JUnit4的单元测试实例,帮助你更好地理解和应用这个工具。 一、JUnit4简介 JUnit4相较于之前的版本,引入了注解(Annotation)机制,极大地简化了测试用例的编写。例如,`@Test`注解用于标记测试...

    Mockito+junit5搞定单元测试

    Mockito 和 JUnit 5 是两个非常流行的 Java 开发工具,它们一起提供了强大的单元测试支持。让我们深入探讨如何利用 Mockito 和 JUnit 5 搞定单元测试。 首先,JUnit 5 是一个广泛使用的 Java 测试框架,它提供了...

    Junit 单元测试完整案例

    【Junit单元测试完整案例】深入解析 在软件开发中,单元测试是验证代码功能是否正确、独立单元是否按预期工作的关键步骤。Junit作为Java领域最常用的单元测试框架,为开发者提供了简单易用的API来进行测试。本案例...

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

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

    Struts+sping+h单元测试实例源码

    Struts2SpringUnitDemo是一个基于Struts2、Spring和JUnit的单元测试实例,它展示了如何在实际项目中整合这三个框架并进行单元测试。这个源码提供了深入理解MVC(Model-View-Controller)架构和依赖注入(DI)原则的...

    Junit4.12+mockito

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

    SpringBoot 多模块 Serivce 层单元测试

    Service层是业务逻辑的核心,对其进行单元测试是确保代码质量、提高开发效率的重要步骤。本文将深入探讨如何在IDEA中对Spring多模块项目中的Service层进行单元测试。 首先,我们需要理解Spring Boot的多模块架构。...

    mockito以及mockMVC的一些使用案例

    Mockito和MockMvc是Java开发中常用的两个单元测试工具,它们在软件开发过程中扮演着重要的角色,帮助开发者确保代码的质量和可维护性。本篇文章将详细介绍这两个库的用途、使用方法以及一些实际案例。 Mockito是一...

    Mockito的重要入门资料

    Mockito作为一种流行的单元测试框架,被广泛应用于Java项目的单元测试中。它通过模拟对象来帮助开发者隔离测试中的依赖项,从而使得测试更加聚焦于被测对象本身的行为。因此,掌握Mockito的基本用法及高级特性对于...

    Android单元测试Demo

    本Demo旨在提供一个基础的Android单元测试实践,通过实例化和运行测试用例,确保应用程序的各个组件(如Activity、Service、BroadcastReceiver等)在独立环境中正确执行。 单元测试通常使用JUnit框架进行,这是Java...

    Servlet Filter 的单元测试

    进行单元测试时,我们可以使用JUnit作为测试框架,Mockito来模拟依赖对象,以及PowerMock等库来模拟静态方法和构造函数,以便于测试Filter的各个部分。同时,为了模拟Servlet容器环境,可能还需要使用如Tomcat ...

    powermock-mockito-junit-1.6.3.zip 当前最新版

    总的来说,PowerMock-Mockito-JUnit的组合提供了一套强大的工具,帮助开发者编写更加完整和严谨的单元测试,提高了代码质量并减少了由于未测试代码导致的问题。在实际开发中,合理运用这些工具能够显著提升软件的可...

    Android unitTest 按键单元测试项目

    在Android应用开发中,单元测试是一项至关重要的任务,它能够帮助开发者确保代码的质量,提高软件的稳定性和可维护性。本项目聚焦于Android中的按键单元测试,特别是针对按钮(button)点击事件的测试。以下是对这个...

    Packt Publishing Mastering Unit Testing Using Mockito and JUnit (2014)

    - **Mockito 概述**:Mockito 是一个流行的 Java 框架,用于轻松创建模拟对象以进行单元测试。 - **模拟外部依赖**:使用 Mockito 可以轻松模拟外部服务或组件,以便于测试独立的功能。 - **编写可测试的代码**:...

    Mockito Cookbook - Packt

    - **主要功能**:本书提供了大量的实例来展示Mockito功能的实际应用,不仅限于文档介绍,还包括如何高效地使用Mockito进行单元测试的方法。 - **应用场景**:适用于JUnit、PowerMock、TestNG等流行单元测试框架。 #...

Global site tag (gtag.js) - Google Analytics