java 单例 构造函数_使用powermock在java中抑制一个单例构造函数

news/2024/7/4 0:53:08 标签: java 单例 构造函数

我试图对一些使用Singleton类的类进行单元测试,这些类的构造函数执行一些我不能(也不应该)从单元测试环境中做的事情。我的理想场景是完全禁止构造函数,然后将我的测试类调用的其他成员方法截断。我的问题是我似乎无法取消构造函数。

我对解决此问题的方法的理解如下所示:

public class MySingleton extends AbstractSingletonParent {

public final static MySingleton Only = new MySingleton();

private MySingleton(){

super(someVar); // I want the super-class constructor to not be called

//

//more code I want to avoid

}

public Object stubbedMethod() {}

}

public class ClassToBeTested {

public void SomeMethod(){

Object o = MySingleton.Only.stubbedMethod();

}

}

@RunWith(PowerMockRunner.class)

@PrepareForTest(MySingleton.class)

public class TestClass {

@Test

public void SomeTest() {

suppress(constructor(MySingleton.class));

mockStatic(MySingleton.class);

PowerMock.replay(MySingleton.class);

// invoke ClassToBeTested, etc

PowerMock.verify(MySingleton.class);

//make some assertions

}

}不幸的是,在createMock调用期间,MySingleton构造函数被击中,并且仍然调用超级构造函数。

我在做一些愚蠢的事情吗?我在网上发现了一个几乎完全这样的例子,但它使用了不推荐使用的suppressConstructor方法。尽管不赞成我也尝试过,但无济于事......

我正在尝试做什么?如果是这样,我做错了什么?

*编辑版本现在起作用。


http://www.niftyadmin.cn/n/708104.html

相关文章

openStack镜像制作

参考链接: https://www.ibm.com/developerworks/community/wikis/home?langen#!/wiki/OpenStack/page/Creatingqcow2CentOSImageforOpenStackhttp://docs.openstack.org/image-guide/content/centos-image.htmlhttp://www.it165.net/os/html/201309/6121.htmlhttps://answers.…

入侵检测数据集_威胁检查分析与数据管理实践之基于入侵检测对HTTP流量的分析...

0x01 概要在安全运营工作当中,经常需要系统日志、设备威胁事件日志、告警日志等 各种日志进行收集汇聚,具体分析,通过日志来分析威胁事件发生源头、相关联的人和资产关系,以日志数据的角度,来追究溯源威胁事件发生的过…

转载:Java实现的SFTP

2019独角兽企业重金招聘Python工程师标准>>> JSch - Java实现的SFTP(文件上传详解篇):https://www.cnblogs.com/longyg/archive/2012/06/25/2556576.html JSch - Java实现的SFTP(文件下载详解篇)&#xff1…

java中可视窗口_原生javasxript获取浏览器的滚动距离和可视窗口的高度

原生javasxript获取浏览器的滚动距离和可视窗口的高度//封装兼容性方法获取滚动的距离function getScrollOffset(){if(window.pageXOffset){return {x : window.pageXOffset,y : window.pageYOffset}}else{return {x : document.body.scrollLeft document.documentElement.scr…

设置CentOS6.5时钟同步

一、测试ntp服务 # rpm -q ntp ntp-4.2.4p8-2.el6.x86_64 // 这表示已安装了,如果没有安装,这是空白。 二、/etc/ntp.conf 红色部分是修改的。 配置文件修改完成,保存退出,启动服务。 service ntpd startntpstat 命令查看时间同…

依存句法分析器的简单实现

生成式句法分析指的是,生成一系列依存句法树,从它们中用特定算法挑出概率最大那一棵。句法分析中,生成模型的构建主要使用三类信息:词性信息、词汇信息和结构信息。前二类很好理解,而结构信息需要特殊语法标记&#xf…

java菱形三角形代码_java三角形和菱形的打印

一、三角形的打印package Test;import java.util.Scanner;public class Main {public void san(int num) {for(int i1;i<num;i) {//控制行数for (int j 1; j < num-i; j) {//控制空格的个数System.out.print(" ");}for(int k1;k<2*i-1;k) {//控制打印*Syst…

python定时器的使用_关于定时器的两种使用方法

在发现Python自身的API在这方面没有很好支持这种情况下&#xff0c;想要使用Timer功能的话&#xff0c;除了第三方的模块外&#xff0c;还可以通过使用标准库为我们提供的sched模块和Timer类。这两个类不能算是真正的Timer&#xff0c;只能算是用来现实Timer的工具类。 不论在客…