IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> PowerMockito整理 -> 正文阅读

[开发测试]PowerMockito整理

PowerMockito总结:
一、演变:PowerMock 主要围绕着 Junit 测试框架和 TestNg 测试框架进行,其中在每个框架下面对所涉及的 Mock 框架仅仅支撑 EasyMock 和 Mockito。
二、优势:可以对 final 类型的class和method,类方法(static),局部变量 mock 等等。
三、注解:
@RunWith:指定PowerMockRunner运行测试用例,如不指定默认使用Junit提供的Runner。
@PrepareForTest:注解是告诉PowerMock为我提前准备一个需要mock的class。
@InjectMocks:被mock的主类。
@Mock:被mock类中需要调到的类,如工具类。
四、常见场景:
1、模拟私有变量:
①声明一个实例。
②使用field方法mock变量。
PowerMockito.field(类,文件名).set(实例,mock的结果);
set两参:
* @param obj the object whose field should be modified
* @param value the new value for the field of {@code obj}
2、模拟引用配置文件:
ReflectionTestUtils.setField(类,文件名,mock值);
3、模拟公共方法:
①引入类
注解方式(@InjectMocks:主类,@Mock:主类中所引用类),声明方式(new)
②mock方法
PowerMockito.when(method).thenreturn(result);
4、模拟私有方法:
①注解指定类
PrepareForTest注解中添加私有方法所属类;
②mock类为静态
PowerMockito.mockStatic(私有方法所属类);
③mock其方法
PowerMockito.when(方法).thenreturn(结果);
5、模拟Final:
①注解中指定被Final修饰的类
@PrepareForTest(Class.class):
②mock被Final修饰的类
Class aClass = PowerMockito.mock(Class.class);
③mock调用方法并赋予返回值
PowerMockito.when(aClass.method(传参))。thenReturn(返回值);
④验证方法是否被调用
Mockito.verify(aClass).method(传参);
五、其它场景:
1、模拟void无返回值方法:
Verify,用以验证方法是否调用。
2、模拟局部变量:
①mock被所需要mock类
Class c = PowerMockito.mock(Class.class);
②mock新生成一个局部变量
PowerMockito.whenNew(Class.class).withNoArguments().thenReturn(“result”);
③声明new一个形参
④验证局部变量的void方法是否被调用
Mockito.verify(employeeDao).method(形参);
3、无参有返回值:
①mock被所需要mock类
Class c = PowerMockito.mock(C1ass.c1ass);
②mock新生成一个局部变量
PowerMockito.whenNew(Class.class).withNoArguments().thenReturn?;
③mock其方法并mock返回值
PowerMockito.when(c.getMethod()).thenReturn(result);
④断言
assertEquals(mock值,实际值);
4、无参无返回值、有参无返回值:同void
5、有参有返回值:
①mock方法
PowerMockito.when(mock方法).thenreturn(结果):
②调用入口方法
返回数据类型 返回结果 =对象。入口方法名(实参)
③断言
assertEquals(mock值,实际值);
6、模拟静态类:
①模拟静态类
PowerMockito.mockStatic(Class.class) ;
②模拟静态类被调用方法并赋予返回值
③-1.无返回值
PowerMockito.verifyStatic();
③-2.有返回值:断言
7、 Verifying:测试工具,检验某个被测试方法是否被顺利调用。
六、方法使用
1、 whenNew
有参构造, whenNew(返回被mock的对象,并非实际产生new行为)
whenNew( EmployeeDao. class), withArguments(传参). thenReturn(返回值)
spy:mock一个对象,然后再调用其中的某个方法,会据原类所提供的方法来调用
3、 doNothing
此 doNothing方法mock无返回值方法
PowerMockito doNothing (). when(skv,“methodname”,“result”):
4、验证私有方法是否被调用
PowerMockito.verifyPriyate(实例).invoke(“methodname”,“result”);
七、反射覆盖:
①获取类
Class aClass Object getclass():
②获取方法, parameterTypes-传参数据类型
Method fs= aClass. getDeclaredMethod(methodName", Class<?>… parameterTypes):
③设置可允许
fs. setAccessible(true);
④反射mck方法,实参-具体值
fs, invoke( aclass, newInstance(),实参);

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-09-07 11:07:04  更:2021-09-07 11:07:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/21 2:33:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码