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();
            }
            
        }
    }
  • 相关阅读:
    【EF Code First】CodeFirst初始配置
    【HTML5】炫丽的时钟效果Canvas绘图与动画基础练习
    C# MongoDB--时区问题(差了8小时)
    【HTML5】Canvas绘制基础
    判断数组与对象的方法
    javascript中的this
    实现动画效果
    js-改变this的指向
    js预编译
    js对象枚举
  • 原文地址:https://www.cnblogs.com/changzhz/p/5163400.html
Copyright © 2011-2022 走看看