zoukankan      html  css  js  c++  java
  • 用PowerMock mock final类constructors

    也相对简单,直接贴代码

    被测方法

    public class EmployeeServiceWithParam {
        public void createEmployee(final Employee employee) {
            EmployeeDaoWithParam employeeDao = new EmployeeDaoWithParam(false,
                    Dialect.MYSQL);
            employeeDao.insertEmploye(employee);
        }
    }
    public class EmployeeDaoWithParam {
        public enum Dialect {
            MYSQL, ORACLE
        }
    
        public EmployeeDaoWithParam(boolean lazy, Dialect dialect) {
            throw new UnsupportedOperationException();
        }
    
        public void insertEmploye(Employee employee) {
            throw new UnsupportedOperationException();
        }
    }

    测试类:

    @PrepareForTest(EmployeeServiceWithParam.class)
    public class EmployeeServiceTestWithParamTest extends PowerMockTestCase{
        @ObjectFactory
        public ITestObjectFactory getObjectFactory() {
            return new PowerMockObjectFactory();
        }
        
        @Test
        public void test(){
            EmployeeDaoWithParam employeeDao = PowerMockito.mock(EmployeeDaoWithParam.class);
            try {
                PowerMockito.whenNew(EmployeeDaoWithParam.class).withArguments(false, EmployeeDaoWithParam.Dialect.MYSQL)
                .thenReturn(employeeDao);
                EmployeeServiceWithParam service = new EmployeeServiceWithParam();
                Employee employee = new Employee();
                service.createEmployee(employee);
                Mockito.verify(employeeDao).insertEmploye(employee);
            } catch (Exception e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
        }
    }
  • 相关阅读:
    MXF文件结构浅析
    Windows FFMPEG开发环境配置
    从文件中读取yuv和h264数据
    TS封装格式
    H.264学习笔记
    【Web Shell】- 技术剖析中国菜刀
    【Web Shell】- 技术剖析中国菜刀 – Part I
    【硬件】- 显卡命名规则
    【硬件】- 英特尔CPU命名中的产品线后缀
    【硬件】- 英特尔CPU命名规则
  • 原文地址:https://www.cnblogs.com/changzhz/p/5163400.html
Copyright © 2011-2022 走看看