用PowerMock mock final类
mock final类相对简单,直接贴代码
被测方法:
public class FinalEmployeeService {
    public void insertEmployee(Employee employee) {
        FinalEmployeeDao employeeDao = new FinalEmployeeDao();
        employeeDao.insertEmployee(employee);
    }
}
final 类
final public class FinalEmployeeDao {
    public boolean insertEmployee(Employee employee) {
        throw new UnsupportedOperationException();
    }
}
测试类:
@PrepareForTest(value={FinalEmployeeDao.class,FinalEmployeeService.class})
public class EmployeeServiceTestWithFinalClassTest extends PowerMockTestCase{
    @ObjectFactory
    public ITestObjectFactory getObjectFactory() {
        return new PowerMockObjectFactory();
    }
    @Test
    public void test() throws Exception {
        FinalEmployeeDao employeeDao = PowerMockito
                .mock(FinalEmployeeDao.class);
        Employee employee = new Employee();
        PowerMockito.whenNew(FinalEmployeeDao.class).withNoArguments().thenReturn(employeeDao);
        PowerMockito.when(employeeDao.insertEmployee(employee)).thenReturn(true);
        FinalEmployeeService employeeService = new FinalEmployeeService();
        employeeService.insertEmployee(employee);
        Mockito.verify(employeeDao).insertEmployee(employee);
    }
}
用PowerMock mock final类的更多相关文章
- 用PowerMock mock final类constructors
		也相对简单,直接贴代码 被测方法 public class EmployeeServiceWithParam { public void createEmployee(final Employee e ... 
- 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类型,也不能被继承:否则,将编译 ... 
随机推荐
- [poj2349]Arctic Network(最小生成树+贪心)
			Arctic Network Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 17758 Accepted: 5646 D ... 
- 一篇讲Java指令重排和内存可见性的好文
			在这里: http://tech.meituan.com/java-memory-reordering.html 指令重排和内存可见性(缓存不一致)是两个不同的问题. volatile关键字太强,即阻 ... 
- 汇编语言写出的helloworld运行过程
			一:首先说一点,这篇文章建立在懂一点汇编的基础上,有几个简单的命令,说以下: 1:-r命令 -r 查看寄存器 -r 寄存器 (如 -r AX) 修改寄存器的值: 2:-d命令 -d 地址:xxxx:x ... 
- 《C++ Primer》学习笔记【第三部分 类设计者的工具】
			第13章 拷贝控制 使用default:=defult只能修饰默认构造函数或拷贝控制成员,显式地要去编译器生成合成的版本. 使用delete:=delete通知编译器不希望定义这些成员,禁止试图使用它 ... 
- 慕课网__css3__3D
- HashMap对象的深层克隆
			1.java.util.HashMap 的 clone 方法是浅层copy,clone出来的对象,仅仅是原来对象的一个引用,并且对克隆出来的对象进行操作是无效的. 下面是个例子: import jav ... 
- struts2值栈内部数据结构详解
			值栈是struts2内部一片很重要的区域,我在初学的时候,发现对于值栈这个数据结构的理解不是很深刻.例如OGNLContext是什么,ActionContext和值栈有什么关系.为什么ActionCo ... 
- SSH邮箱验证与激活
			下面是我写的email验证和激活: 自己瞎写的,能用,不喜欢勿喷 action中regist方法中代码 /** * * 发送邮件的方法 */ StringBuffer sb=new StringBuf ... 
- RabbitMQ之入门
			生成者: #coding:utf-8 import sys import pika credentials=pika.PlainCredentials("guest"," ... 
- GNS3 IOU 配置
			GNS3使用视频: http://edu.51cto.com/lesson/id-25295.html GNS3 IOU 与VM http://www.mamicode.com/info-detail ... 
