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()); } } }
相关推荐
Mockito 是一个流行的 Java 测试框架,它使得单元测试更加容易,特别是当处理依赖于其他组件或服务的代码时。本篇文章将深入解析如何使用 Mockito 实现 Java 单元测试。 首先,让我们看一个简单的例子,有一个名为 ...
四、Mockito单元测试 Mockito是一个流行的Mocking框架,提供了mock对象的功能,可以用来模拟外部依赖项,例如数据库、Redis、外部服务等。 五、隔离外部依赖 在单元测试中,需要隔离外部依赖项,以避免外部依赖项...
### Mockito 单元测试详解 #### 一、引言 在软件开发过程中,编写单元测试是一种常见的实践方式,用于确保代码质量与功能正确性。然而,在处理复杂的依赖关系时,传统的方法可能会遇到难题,比如当一个类依赖于多...
本实例聚焦于Android应用中的单元测试,特别是针对登录界面及其相关功能的测试。我们将探讨如何构建和执行这些测试,以及使用到的相关工具和技术。 首先,单元测试通常使用JUnit框架进行,这是Java开发中的标准测试...
TestNG和Mockito是两个在单元测试领域常用的工具,它们分别用于测试管理和模拟对象。本篇文章将深入探讨如何在Spring项目中集成TestNG和Mockito进行单元测试。 TestNG是一个强大的测试框架,它扩展了JUnit的功能,...
本篇文章将深入探讨JUnit4的单元测试实例,帮助你更好地理解和应用这个工具。 一、JUnit4简介 JUnit4相较于之前的版本,引入了注解(Annotation)机制,极大地简化了测试用例的编写。例如,`@Test`注解用于标记测试...
Mockito 和 JUnit 5 是两个非常流行的 Java 开发工具,它们一起提供了强大的单元测试支持。让我们深入探讨如何利用 Mockito 和 JUnit 5 搞定单元测试。 首先,JUnit 5 是一个广泛使用的 Java 测试框架,它提供了...
【Junit单元测试完整案例】深入解析 在软件开发中,单元测试是验证代码功能是否正确、独立单元是否按预期工作的关键步骤。Junit作为Java领域最常用的单元测试框架,为开发者提供了简单易用的API来进行测试。本案例...
Struts2SpringUnitDemo是一个基于Struts2、Spring和JUnit的单元测试实例,它展示了如何在实际项目中整合这三个框架并进行单元测试。这个源码提供了深入理解MVC(Model-View-Controller)架构和依赖注入(DI)原则的...
在这个压缩包中,包含的是两个关键工具:JUnit 4.12 和 Mockito,它们是Java开发中广泛使用的单元测试框架。 **JUnit** 是一个开源的Java单元测试框架,它的版本4.12提供了许多增强的功能,包括注解(Annotation)...
PowerMock和Mockito是两个非常流行的Java单元测试框架,结合JUnit,它们可以提供强大的测试能力。在本文中,我们将深入探讨"PowerMock+Mockito-junit测试套件1.6.3版本"中的关键概念、功能和使用方法。 **PowerMock...
Service层是业务逻辑的核心,对其进行单元测试是确保代码质量、提高开发效率的重要步骤。本文将深入探讨如何在IDEA中对Spring多模块项目中的Service层进行单元测试。 首先,我们需要理解Spring Boot的多模块架构。...
Mockito和MockMvc是Java开发中常用的两个单元测试工具,它们在软件开发过程中扮演着重要的角色,帮助开发者确保代码的质量和可维护性。本篇文章将详细介绍这两个库的用途、使用方法以及一些实际案例。 Mockito是一...
Mockito作为一种流行的单元测试框架,被广泛应用于Java项目的单元测试中。它通过模拟对象来帮助开发者隔离测试中的依赖项,从而使得测试更加聚焦于被测对象本身的行为。因此,掌握Mockito的基本用法及高级特性对于...
本Demo旨在提供一个基础的Android单元测试实践,通过实例化和运行测试用例,确保应用程序的各个组件(如Activity、Service、BroadcastReceiver等)在独立环境中正确执行。 单元测试通常使用JUnit框架进行,这是Java...
进行单元测试时,我们可以使用JUnit作为测试框架,Mockito来模拟依赖对象,以及PowerMock等库来模拟静态方法和构造函数,以便于测试Filter的各个部分。同时,为了模拟Servlet容器环境,可能还需要使用如Tomcat ...
在Android应用开发中,单元测试是一项至关重要的任务,它能够帮助开发者确保代码的质量,提高软件的稳定性和可维护性。本项目聚焦于Android中的按键单元测试,特别是针对按钮(button)点击事件的测试。以下是对这个...
- **Mockito 概述**:Mockito 是一个流行的 Java 框架,用于轻松创建模拟对象以进行单元测试。 - **模拟外部依赖**:使用 Mockito 可以轻松模拟外部服务或组件,以便于测试独立的功能。 - **编写可测试的代码**:...
- **主要功能**:本书提供了大量的实例来展示Mockito功能的实际应用,不仅限于文档介绍,还包括如何高效地使用Mockito进行单元测试的方法。 - **应用场景**:适用于JUnit、PowerMock、TestNG等流行单元测试框架。 #...
Mockito是一个流行的Java单元测试框架,用于创建和管理模拟对象(mock objects)。在集成测试中,我们可能不希望依赖于真实的数据库或外部服务,这时Mockito可以帮助我们模拟这些依赖,以便专注于测试目标代码的行为...