mock时忽略不必要的初始化

PowerMockito.mockStatic时忽略加载类的静态field,比如想PowerMockito.mockStatic(ClassA.class),ClassA如下

public class ClassA {

private static final boolean CONF_FLAG = Configuration.getConfig()
.get(Status.Initialization).getConfFlag(); // throws an NPE

public static methodTobeCalledByOtherTestMethod(TestObject a){
...
 }
}

filed CONF_FLAG需要调用一些其他依赖,而这些依赖不可获得,当mock时会抛异常,可以使用:

@RunWith(PowerMockRunner.class)
@PrepareForTest({ClassA.class})
@SuppressStaticInitializationFor("com.xxx.xxx.ClassA")
public class XXXTest {

    @Test
    public void testXXX() {
        PowerMockito.mockStatic(ClassA.class);
        ....
    }
}

使用SuppressStaticInitializationFor就不会去初始化CONF_FLAG。

另外其他忽略的配置请见:Suppress Unwanted Behavior

参考:What am I doing wrong mocking this private static final variable using mockito and reflection?

时间: 2024-10-14 23:09:23

mock时忽略不必要的初始化的相关文章

如何cp目录时忽略指定的目录和文件

在备份ltedecoder程序时,需要把此目录拷由到bak目录下,但decoder目录下有个大文件,不需要备份,还有日志问题,也不需要备份,如何实现呢?? 方法: cd /source-dir find . -name .snapshot -prune -o -print0 | cpio -pmd0 /dest-dir 解释: This command copies the contents of /source-dir to /dest-dir, but omits files and dir

maven多模块项目执行 deploy 时 忽略某些model (忽略war包)

maven deploy 时,通常需要忽略生成war的model,简单调整一下配置即可: <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-deploy-plugin</artifactId> <version>2.8.2</version> <configuration> <ski

SVN(TortoiseSVN)提交时忽略bin跟obj目录

SVN(TortoiseSVN)提交时忽略bin和obj目录 一般协作开发情况下,有意思无意将bin和obj目录添加到版本管理中是很烦人的事儿,在VS中不断地编译程序集和提交将带来版本暴增问题.如果你用的是SVN(TortoiseSVN)可以通过添加属性来忽略掉. 具体实现 在解决方案目录上点右键 在乌龟菜单中找到"属性"点开 在弹出窗中点"新增" 在弹出窗中的"属性"中选择"svn:ignore" 然后取值中填上bin和ob

FastJson序列化时忽略特定属性

在之前的工作中,一直用jackson来处理json串转换的问题,有些时候我们经常有忽略某些属性的情况,个人比较习惯jackson的注解的方式,而且也是比较灵活的,分别提供了@JsonIgnoreProperties,@JsonIgnore等. 而FastJson中,并没有提供类似的方式,而是提供了各种filter机制来实现的,具体可以参考:https://github.com/alibaba/fastjson/wiki/%E5%AE%9A%E5%88%B6%E5%BA%8F%E5%88%97%E

C# Newtonsoft.Json JObject移除属性,在序列化时忽略

原文 C# Newtonsoft.Json JObject移除属性,在序列化时忽略 一.针对 单个 对象移除属性,序列化时忽略处理 JObject实例的 Remove() 方法,可以在 指定序列化时移除属性和值 示例如下 : [csharp] view plain copy //json 序列化 JObject obj1 = JObject.FromObject(new { id = 1, name = "张三", age = 20 }); Console.WriteLine(obj1

git提交时忽略指定文件

git提交时忽略指定文件 我们在项目开发过程中经常用到git来管理自己的项目,使用git版本控制进行多人协作开发具有许多优势,这里就不一一阐述了,有兴趣的同学可以自己去查找资料进行系统的学习.而本篇文章要说的是git使用过程中会遇到的一个问题,就是我们在项目开发过程中经常会修改一些配置文件 ,但是有的时候这些配置文件不需要被提交到远程仓库中,只在本地生效即可,此时就需要我们每次提交代码时把该文件给手动忽略,那么可不可以把该文件设置成永久忽略呢?答案肯定是有的,git的gitignore文件中可以

ubutnu 下SVN 提交时忽略某些文件或文件夹

当编译程序时会出现很多中间文件,但是提交时又不希望提交这些文件,如下图,那么问题来了,该怎么忽略这些文件呢? 1.首先把产生的中间文件名保存到一个文件里面,如:ignore.txt,就是那些前面带?号的,当然也包括ignore.txt本身.别忘了?号后面有7个空格(根据?号到文件名之间的空格数决定). 虽然很笨,But,It works! 目的是让产生的ignore.txt文件中忽略文件名前没有任何空格. svn status |awk -F '\?       ' '{printf $2"\n

怎样cp文件夹时忽略指定的文件夹和文件

在备份ltedecoder程序时,须要把此文件夹拷由到bak文件夹下.但decoder文件夹下有个大文件,不须要备份,还有日志问题,也不须要备份,怎样实现呢?? 方法: cd /source-dir find . -name .snapshot-prune-o-print0 | cpio -pmd0 /dest-dir 解释: This command copies the contents of /source-dir to /dest-dir, but omits files and dir

java在类定义时对hashset的便捷初始化方法

有时候我们在类成员定义时,当这个类成员类型为 HashSet时,我们可以不方便调用 add函数进行初始化,所以可以采用下面的便捷方式来进行初始化 1 public class MyTest{ 2 3 final HashSet<String> set = new HashSet<String>() { 4 { 5 add("a"); 6 add("b"); 7 add("c"); 8 9 } 10 }; 11 public