用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();
} }
}
用PowerMock mock final类constructors的更多相关文章
- 用PowerMock mock final类
		mock final类相对简单,直接贴代码 被测方法: public class FinalEmployeeService { public void insertEmployee(Employee ... 
- Mockito不能mock final类的解决办法
		Mockito是很常用的测试工具,使用过程中可能会遇到下面的问题: Mockito cannot mock/spy because : - final class 问题重现: 引入该依赖到项目的mav ... 
- 在Kotlin上怎样用Mockito2 mock final 类(KAD 23)
		作者:Antonio Leiva 时间:Mar 2, 2017 原文链接:https://antonioleiva.com/mockito-2-kotlin/ 如我们在前面文章中谈到的,Kotlin最 ... 
- 无所不能的PowerMock,mock私有方法,静态方法,测试私有方法,final类
		1.为什么要用mock 我的一本书的解释: (1)创建所需的DB数据可能需要很长时间,如:调用别的接口,模拟很多数据 (2)调用第三方API接口,测试很慢, (3)编写满足所有外部依赖的测试可能很复杂 ... 
- PowerMock学习(六)之Mock Final的使用
		Mock Final mockfinal相对来说就比较简单了,使用powermock来测试使用final修饰的method或class,比较简单,接口调用部分,还是service调用dao. 对于接口 ... 
- 动态绑定、阻止继承,final类和方法
		1.编译器查看对象的声明类型和方法名.当调用 x.f(param); 且隐式参数x生命为C类对象.这时候可能有多个名字都叫f,但是参数类型不一样的方法.编译器会一一列举C类中名为f的方法和其超类中访问 ... 
- final类与final方法
		inal---用于类.方法前. final类---不可被继承. final方法---不可被覆盖. final类不能被继承. 如果我们不希望一个类被继承,我们使用final来修饰这个类.这个类将无法被继 ... 
- Java final类&所有构造方法均为private的类(类型说明符&访问控制符)
		1. final是类型说明符,表示关闭继承,即final类不能有子类: 但final类可能可以在类外创建对象(即final类的构造方法可以不是private型): 在同一包中时,可以在任何另外一个类中 ... 
- Final类和Final方法
		终止继承 Final类 当关键字final用来修饰类时,其含义是该类不能在派生子类.换句话说,任何其他类都不能继承用final修饰的类,即使该类的访问限制为public类型,也不能被继承:否则,将编译 ... 
随机推荐
- 非root用户安装软件
			下面简要说一下Linux下非root用户安装软件的一般流程: 1. 获取源代码,一般是wget方式,ubuntu可以使用apt-get source来获取源代码. 2. 解压源代码,一般使用tar - ... 
- Jenkins console输出乱码???
			jenkins console输出乱码??? 在jenkins中job执行shell,console中出现乱码如下: [WARNING] /home/mtime/data/jenkins/worksp ... 
- About LIS(Longest Increasing Subsequence)
			今天528给讲了基础的DP,其中第一道例题就是最长不下降子序列——LIS. 题目简述:给出N个数,求最长不下降子序列的长度. 数据范围:30% N<=1000 ; 100% N<=1000 ... 
- 用CSS3和Canvas来画网格
			我们经常使用一些excel表格来处理数据,在html中,我们可以用table来制成表格.今天来看一下一些不同的方法. 方法一:使用CSS3的background的linear-gradient属性 l ... 
- UIStackView使用 (堆视图)
			一基本使用 1创建多个子控件 for (int i = 0; i < 3; i++) { UIButton *imgBtn = [UIButton buttonWithType:UIButton ... 
- contiki-process_run()
			process_run()函数位于main函数中 ) { do { } ); idle_count++; } 找到函数的声明处: /** * Run the system once - call po ... 
- HTML5 十大新特性(六)——地理定位
			简单地用一句话概括就是,使用js获取浏览器当前所在的地理坐标,实现LBS(Location Based Service,基于定位的服务). 下面写一下它的基本调用: if(navigator.geol ... 
- 滴滴快车,安全把你带到凡科安全知识h5大赛
			滴滴出行提出"安全第一.体验第二.效率第三"的可持续发展宗旨.近期,滴滴出行还推广了"安全带"宣传,包括明星夫妻CP安全带姿势和明星后排安全带语音播报等,来提升 ... 
- python3 购物程序
			要求: 一.启动程序后,选择是商家还是用户 1.选择商家用户 输入用户名,密码进入 选择增加商品及价格:格式: 商品名称 价格 选择编辑商品及价格:根据提示进行操作 2.选择用户 输入用户名,密码进 ... 
- Sprint1(第二天11.15)
			Sprint1(第二天11.15) Sprint1第一阶段 1.类名:软件工程-第一阶段 2.时间:11.14-11.23 3.选题内容:web版-餐厅到店点餐系统 4.团队博客地址: http:// ... 
