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();
            }
            
        }
    }
  • 相关阅读:
    1491: [NOI2007]社交网络
    Ombrophobic Bovines
    1566: [NOI2009]管道取珠
    1564: [NOI2009]二叉查找树
    1497: [NOI2006]最大获利
    mysql数据库修改字段及新增字段脚本
    NIO
    Lombok用法及标签释义
    idea2017.2延长使用时间
    IDEA 注册码
  • 原文地址:https://www.cnblogs.com/changzhz/p/5163400.html
Copyright © 2011-2022 走看看