`

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());
        } 
    }
}

 

分享到:
评论

相关推荐

    mockito单元测试

    mickito实例:在实际项目中写单元测试的过程中我们会发现需要测试的类有很多依赖,这些依赖项又会有依赖,导致在单元测试代码里几乎无法完成构建,尤其是当依赖项尚未构建完成时会导致单元测试无法进行。为了解决这...

    单元测试工具-Mockito学习心得

    先来看看下面这个示例:从上图可以看出如果我们要对A进行测试,那么就要先把整个依赖树构建出来,也就是BCDE的实例。 一种替代方案就是使用mocks从图中可以清晰的看出mock对象就是在调试期间用来作为真实对象的替代...

    Android代码-android-unit-testing-tutorial

    本文是一系列发表在我的个人博客,关于安卓单元测试的文章的实例代码。 代码与文章的对应关系如下: Android单元测试: 首先,从是什么开始 代码和测试代码都在what子package下面 Android单元测试(三):JUnit单元测试...

    MockitoDemo:使用 Mockito 在 Java 中进行 Mocking 入门

    #README ##这是一个关于使用Mock来进行单元测试构建的实例 原文的地址: 翻译后:

    Spring+3.x企业应用开发实战光盘源码(全)

     第16章:有别于一般书籍的单元测试内容,本书以当前最具实战的JUnit4+Unitils+ Mockito复合测试框架对如何测试数据库、Web的应用进行了深入的讲解。  第17章:以一个实际的项目为蓝本,带领读者从项目需求分析、...

    Spring.3.x企业应用开发实战(完整版).part2

    16.7.1 对LoginController进行单元测试 16.7.2 使用Spring Servlet API模拟对象 16.7.3 使用Spring RestTemplate测试 16.7.4 使用Selenium测试 16.8 小结 第17章 实战案例开发 17.1 论坛案例概述 17.1.1 论坛整体...

    Spring3.x企业应用开发实战(完整版) part1

    16.7.1 对LoginController进行单元测试 16.7.2 使用Spring Servlet API模拟对象 16.7.3 使用Spring RestTemplate测试 16.7.4 使用Selenium测试 16.8 小结 第17章 实战案例开发 17.1 论坛案例概述 17.1.1 论坛整体...

    陈开雄 Spring+3.x企业应用开发实战光盘源码.zip

     第16章:有别于一般书籍的单元测试内容,本书以当前最具实战的JUnit4+Unitils+ Mockito复合测试框架对如何测试数据库、Web的应用进行了深入的讲解。  第17章:以一个实际的项目为蓝本,带领读者从项目需求分析、...

    junit和TestNG框架入门

    本文介绍和对比了TestNG和junit框架,并举出实例说明。 同时讲解了Mockito和Dbunit框架的使用

Global site tag (gtag.js) - Google Analytics