PowerMock学习笔记,对单例的测试方法
对单例进行mock
单例类
public class PmModelHandler {
// 包含要mock掉的成员变量
private static LogService logger = LogService.getInstance();
private static PmModelHandler instance = new PmModelHandler();
public static PmModelHandler getInstance() {
return instance;
}
private PmModelHandler() {
}
public void method(){
}
测试类
import java.util.Set; import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner; import com.zte.LogService; @RunWith(PowerMockRunner.class)
@PrepareForTest({ PmModelHandler.class, LogService.class })
public class ModelUtilTest { private PmModelHandler handler; @Before
public void setUp() throws Exception {
LogService logService = PowerMockito
.mock(LogService.class);
PowerMockito.doNothing().when(logService, "writeLog", anyString());
PowerMockito.mockStatic(LogService.class);
PowerMockito.doReturn(logService).when(LogService.class, "getInstance"); handler = PowerMockito.mock(PmModelHandler.class);
PowerMockito.mockStatic(PmModelHandler.class);
PowerMockito.doReturn(handler).when(PmModelHandler.class, "getInstance");
}
@Test
public void testMethod() throws Exception {
PowerMockito.doReturn(your obj).when(handler, "methodname", "input");
…………
有时会出现依赖的类无法初始化,而且mock不掉的时候,可使用注解屏蔽掉告警
@SuppressStaticInitializationFor("com.xxx.class")
PowerMock学习笔记,对单例的测试方法的更多相关文章
- Java学习笔记之---单例模型
Java学习笔记之---单例模型 单例模型分为:饿汉式,懒汉式 (一)要点 1.某个类只能有一个实例 2.必须自行创建实例 3.必须自行向整个系统提供这个实例 (二)实现 1.只提供私有的构造方法 2 ...
- SpringMVC学习笔记:单例与并发问题
Spring中的Bean默认都是单例(singleton),Spring中Bean的scope属性有五种类型: singleton 表示在spring容器中的单例,通过spring容器获得该bean时 ...
- Javascript设计模式学习二(单例)
定义:保证一个类仅有一个实例,并提供一个访问它的全局访问点 普通的单例模式: 使用一个变量来标记当前是否已经为某个类创建过对象,如果是的话,在下一次获取该类的实例时,直接返回之前创建的对象.比如:使用 ...
- Effective java 第2版 - 笔记(01) 单例(Singleton)的枚举(enum)实现
直接上代码: public enum Boss { INSTANCE; private String name; public void doSomeThing() { System.out.prin ...
- Java笔记(十一)……单例设计模式
设计模式 解决某一类问题最行之有效的方法 Java中有23中设计模式 单例设计模式 解决一个类在内存中只存在一个对象 思路 将构造函数私有化 在类中创建一个本类对象 提供一个方法可以获取到对象 两种方 ...
- java新手笔记12 单例
1.单例 package com.yfs.javase; public class Singleton { //private static final Singleton single = new ...
- javascript学习(9)——[设计模式]单例
单例模式,相信大家对此都不陌生,我们主要讲下javascript中几个比较常见的设计模式: (1).普通的单体 (2).具有局部变量的强大单体 (3).惰性单体 (4).分支单体 下面我们就一一进行介 ...
- unity3d中设计模式的学习<一>:泛型单例
单例是游戏开发中比较常见的设计模式,虽然针对的功能不同,但是有一些功能还是共有的,代码也不少,如果能放在一个基类里面是最好不过了,但是单例里需要有个instance功能来返回当前对象,所以这个功能必须 ...
- scala学习手记14 - 单例对象
java中的单例模式都很熟悉了:简单地说就是一个类只能有一个实例.在scala中创建单例对象非常简单,创建类时使用object关键字替换class即可.因为单例类无法初始化,所以不能向它的主构造函数传 ...
随机推荐
- 树莓派编译安装 FFmpeg(添加 H.264 硬件编解码器支持)
说明 FFmpeg 是一套开源的音视频编解码库,有非常强大的功能,包括视频采集功能.视频格式转换等.众所周知视频编解码是一个非常消耗系统资源的过程,而树莓派自带了 H.264 的硬件编解码器,因此本文 ...
- pre 标签 防止 其撑开 div...
pre 里面 的内容如果不换行,会导致 div 横向 出现 滚动条...加入下列 css可解决! pre{ white-space: pre-wrap; word-wrap: break-word; ...
- sublime 显示 python 错误信息
默认的编译器可以直接按Ctrl+B编译运行Python,并在控制台输出结果.美中不足的是无法输出中文,需要自己手动配置一番. 在Sublime Text 3 中依次点击菜单Tools->buil ...
- 如何从GAC中复制DLL文件
运行执行:c:\Windows\assembly\gac_msil
- P3796 【模板】AC自动机
传送门 AC自动机的模板 简单的理解就是字典树上的KMP 注意数组不要开太大 不然每次memset耗时太多 有一个小优化 每次走 fail 边找匹配时只有一些会更新答案 那么就可以把没用的fail边压 ...
- Socket通信客户端和服务端代码
这两天研究了下Socket通信,简单实现的客户端和服务端代码 先上winfrom图片,客户端和服务端一样 服务端代码: using System; using System.Collections.G ...
- 查看SQL SERVER Job details
SELECT [sJOB].[job_id] AS [JobID] , [sJOB].[name] AS [JobName] , [sDBP].[name] AS [JobOwner] , [sCAT ...
- ORACLE这门武功
今天不是一个什么特别的日子,只是有些感触,特别是工作上的,所以就想记一变复杂的心情.有句话说:"人到中年不如狗",我不知道我现在的状况是不如狗,还是比狗好一点.但至少心情部复杂的. ...
- powerdesigner 遇到的各种问题总结
1. 设置自增 打开表 -- 在具体列的前面双击即可添加各种属性 2. 生成sql 时设置编码 database --> generate database --> format --&g ...
- Kudu版本升级(官网推荐的步骤)(Upgrade from a Previous Version of Kudu)
不多说,直接上干货! http://kudu.apache.org/docs/installation.html#sles_from_source