(工作笔记)jmockit的使用-mock私有变量、静态变量、代码块
目录
- 一、jmockit配置
- 二、实例
- 2.1 被测对象
- 2.2 测试类
一、jmockit配置
变量
<properties><jmockit.version>1.43</jmockit.version></properties>
依赖
<dependency><groupId>org.jmockit</groupId><artifactId>jmockit</artifactId><version>${jmockit.version}</version><scope>test</scope></dependency>
配置(版本1.42以上必须)
<plugin><artifactId>maven-surefire-plugin</artifactId><version>2.21.0</version> <!-- or some other version --><configuration><argLine>-javaagent:${settings.localRepository}/org/jmockit/jmockit/${jmockit.version}/jmockit-${jmockit.version}.jar</argLine><!-- ... --></configuration></plugin>
二、实例
2.1 被测对象
package com.test.service;/*** @author lu* @date 2018/12/13*/
public class JMockitoSupportService {private String privateData="privateData";private String constuctData;private static String staticData;{constuctData="constuctData";}static{staticData="staticData";}public boolean sayHello(String output){System.out.println(output);if(output.equals("true")){return true;}else{return false;}}public static boolean sayStaticHello(String output){System.out.println(output);if(output.equals("true")){return true;}else{return false;}}public final boolean sayFinalHello(String output){System.out.println(output);if(output.equals("true")){return true;}else{return false;}}public String getPrivateData() {return privateData;}public String getConstuctData() {return constuctData;}public static String getStaticData() {return staticData;}
}
2.2 测试类
import com.test.service.JMockitoSupportService;
import mockit.*;
import mockit.internal.reflection.FieldReflection;
import org.junit.Before;
import org.junit.Test;public class JMockitNewTest {//私有成员mock@InjectableString privateData="private Mock Data";//代码块mock@InjectableString constuctData="constuct Mock Data";@Injectablepublic static String staticData="static Mock Data";//测试对象@TestedJMockitoSupportService jMockitoSupportService;public static class JMockitNewMockTest extends MockUp<JMockitoSupportService>{//mock代码块和构造函数@Mockvoid $init(Invocation invocation) {JMockitoSupportService jMockitoSupportService=invocation.getInvokedInstance();//1.44 废弃 1.45 删除Deencapsulation.setField(jMockitoSupportService,"staticData",staticData);}//mock静态代码块@Mockvoid $clinit(Invocation invocation){}}@Beforepublic void setUp() {new JMockitNewMockTest();//1.45静态变量需要通过反射注入
// FieldReflection.setFieldValue(JMockitoSupportService.class.getDeclaredField("staticData")
// ,jMockitoSupportService,staticData);}@Testpublic void testJMockit(){System.out.println(jMockitoSupportService.getConstuctData());System.out.println(jMockitoSupportService.getPrivateData());System.out.println(jMockitoSupportService.getStaticData());System.out.println(JMockitoSupportService.getStaticData());}}
(工作笔记)jmockit的使用-mock私有变量、静态变量、代码块相关推荐
- java中静态变量,静态代码块,静态方法,实例变量,匿名代码块的加载顺序
1. java中静态变量,静态代码块,静态方法,实例变量,匿名代码块 在Java中,使用{}括起来的代码称为代码块,代码块可以分为以下四种: (1)普通代码块:就是类中方法的方法体 public vo ...
- java中类变量局部量_java入门---变量类型类变量局部变量实例变量静态变量
在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: typeidentifier[= value][, identifier[= value]...]; 格式说明:type为Jav ...
- Java(静态)变量和(静态)代码块的执行顺序
为什么80%的码农都做不了架构师?>>> 本文讨论Java中(静态)变量.(静态)代码块的执行顺序 首先创建3个类: //1.Foo类,用于打印变量 public class ...
- C语言块级变量:在代码块内部定义的变量
所谓代码块,就是由{ }包围起来的代码.代码块在C语言中随处可见,例如函数体.选择结构.循环结构等.不包含代码块的C语言程序根本不能运行,即使最简单的C语言程序(上节已经进行了展示)也要包含代码块. ...
- java三大变量——静态变量、实例变量、局部变量
文章目录 前言 一.java中变量分类 二.三者的区别与联系 1.静态变量.实例变量.局部变量区别 2.成员变量的两种细分类型的区别 总结 前言 变量是内存当中存储数据最基本的单元,将数据(字面量)放 ...
- Java 静态变量中包含变量,修改变量静态变量无法改变问题
先描述下问题场景:接口地址中父类地址为可变地址,修改父类地址后发现接口地址未曾改变.: public class Init {private static String baseUrl = " ...
- java静态代码块、静态方法、静态变量、构造代码块、普通代码块、成员变量执行顺序
package smartt.styy.auth.model.voRsp;public class Test {static {String test5="555";//局部变量t ...
- Qt|设计模式工作笔记-对单例模式进一步的理解(静态加单例实现专门收发UDP对象)
目录 理论 源码 理论 这里只说明一点,使用单例模式,私有成员里放一个成员,这个成员是一个静态成员,把构造函数都屏蔽掉(放到protected或者private中即可)使用一个flag,让其只能生成一 ...
- java 静态变量加载顺序_java 成员变量 静态变量代码块 静态代码快加载顺序
序言 基类A 类B继承实现了A类 1在new B一个实例时首先要进行类的装载.(类只有在使用New调用创建的时候才会被java类装载器装入)2,在装载类时,先装载父类A,再装载子类B 3,装载父类A后 ...
最新文章
- Lambda表达式(简单解析)
- MySQL每秒57万的写入,带你装逼,带你飞 !!
- H5新增的标签和属性
- java静态变量,静态代码块,普通代码块,构造函数加载顺序
- PhpYun人才系统 与 Discuz 社区 通过 Ucenter 做会员整合
- 记录一些常见的沟通问题 #29
- centos7 dotnet command not found
- 知乎十万级容器规模的Java分布式镜像仓库实践
- Java基础语法——Java语言介绍
- 从VBA到VSTO的一些想法
- SNMP学习笔记之SNMP TRAP简介、流程以及使用Python实现接受Trap信息
- 数字孪生交通仿真(一)
- 如何将OnlyOffice与NextCloud集成
- 解析android多语言与自定义字体
- 办公效率该怎么提高呢?五个高效办公小技巧分享给你,职场的你必备的神器。
- 双向广搜-HDU1401 Solitaire
- HDU 2019 Multi-University Training Contest 1 杭电2019多校联合训练赛 第一场 1001 Blank (6578)
- 基于深度学习的合成孔径雷达自聚焦
- 研究生应该常去的网站
- JC24B 2.4G无线模块配置