小编典典

你想要做的是1的一部分和2的全部的组合。

你需要使用PowerMockito.mockStatic为类的所有静态方法启用静态模拟。这意味着可以使用when-thenReturn语法对它们进行存根。

但是,当你调用尚未在模拟实例上显式存根的方法时,你正在使用的2个参数的mathStatic重载为Mockito / PowerMock应该执行的操作提供了默认策略。

从javadoc:

创建具有指定策略的类模拟,以解决交互问题。这是一个非常高级的功能,通常你不需要它来编写不错的测试。但是,在使用旧系统时可能会有所帮助。这是默认答案,因此仅当你不存根方法调用时才会使用它。

该默认默认磕碰的策略是只返回NULL,0或假的对象,数量和布尔值的方法。通过使用2-arg重载,你说的是“不,不,不,默认情况下,使用此Answer子类的answer方法获取默认值。它返回Long,因此,如果你有静态方法返回的值与长期存在问题。

而是使用模拟静态的1-arg版本启用静态方法的存根,然后使用when-thenReturn指定对特定方法执行的操作。例如:

import static org.mockito.Mockito.*;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.mockito.invocation.InvocationOnMock;

import org.mockito.stubbing.Answer;

import org.powermock.api.mockito.PowerMockito;

import org.powermock.core.classloader.annotations.PrepareForTest;

import org.powermock.modules.junit4.PowerMockRunner;

class ClassWithStatics {

public static String getString() {

return "String";

}

public static int getInt() {

return 1;

}

}

@RunWith(PowerMockRunner.class)

@PrepareForTest(ClassWithStatics.class)

public class StubJustOneStatic {

@Test

public void test() {

PowerMockito.mockStatic(ClassWithStatics.class);

when(ClassWithStatics.getString()).thenReturn("Hello!");

System.out.println("String: " + ClassWithStatics.getString());

System.out.println("Int: " + ClassWithStatics.getInt());

}

}

字符串型静态方法被存根以返回“ Hello!”,而整数型静态方法使用缺省的存根,返回0。

2020-03-06

java静态方法获取对象_JavaPowerMockito模拟单个静态方法和返回对象相关推荐

  1. java使用axis调用.net发布的webservice接口返回对象类型

    本人在java中axis-1.4 调用 .net发布的webService接口 有问题欢迎各路大神讨论 !!! 1.1 基本类型 1.2 对象类型 1.3复杂对象类型(对象类中嵌套对象类) 返回基本类 ...

  2. java dom获取命名空间属性_java – 如何在XML DOM对象中添加命名空间前缀?

    我正在尝试使用特定的命名空间来构建一个 XML文档.我想要生成的最终文档应该是这样的: token token token 这是我到目前为止. Document document = Document ...

  3. java后台获取微信分享二维码 并返回给前端

    最近公司业务需求 微信小程序需要分享 从后台请求生成二维码图片 并显示 给大家分享一下 经验 第一步 :获得 微信token(这个token两个小时会过期 所以需要token生成相对应的二维码) St ...

  4. java 实现获取支付宝授权获取会员信息

    1.配置支付宝所需参数 2.实现类 Java根据获取到的参数,拼接起来返回给安卓,让安卓调用支付宝授权获取会员信息: @ApiOperation(value = "拼接支付宝授权页面所需参数 ...

  5. python3调用函数len结果不返回字符串长度_Python通过len函数返回对象长度

    英文文档: len(s) Return the length (the number of items) of an object. The argument may be a sequence (s ...

  6. 返回对象1(未调用拷贝构造函数)

    对象作为返回值与对象作为参数处理方法非常类似,对象作为参数时,进入函数前预先将对象使用的栈空间保留出来,并将实参对象中的数据复制到栈空间保留出来,并将实参对象中的数据复制到栈空间中.该栈空间作为函数参 ...

  7. 应用程序对象正在关闭_Windows核心编程-内核对象

    概念:内核对象可以供系统和应用程序使用来管理各种各样的资源,Windows程序员可以调用Windows API去创建.打开和操作各种内核对象.常见的内核对象有:访问令牌.事件对象.文件对象.文件映射对 ...

  8. Java单元测试实践-06.Mock后Stub静态方法

    Java单元测试实践-00.目录(9万多字文档+700多测试示例) https://blog.csdn.net/a82514921/article/details/107969340 1. Mock后 ...

  9. Java基础(二)——IDEA快捷键、类和对象、三大特征、构造方法、对象比较、抽象类、接口、模拟发红包

    IDEA常用快捷键 快捷键 功能 Alt+回车 导入包,自动修正 Ctrl+N 查找类 Ctrl+Shift+N 查找文件 Ctrl+Alt+L 格式化代码 Ctrl+Alt+O 优化导入的类和包 A ...

最新文章

  1. 天线3db波束宽度_天线的主瓣波束宽度越窄天线增益越高.PPT
  2. 预言机、预言机网络、预测市场
  3. 在redhat6.3 安装oracle 11.2.0.1遇到的错误
  4. gradle java ide_使用Gradle构建Java项目
  5. 爬虫app信息抓取之apk反编译抓取
  6. 【图像分割】基于matlab模糊聚类算法FCM图像分割【含Matlab源码 084期】
  7. 两台服务器安装redis集群_高性能分布式存储服务Minio安装配置入门
  8. VMware虚拟机专用win7系统下载|免费下载虚拟机专用的win7系统
  9. Xiaojie雷达之路---车载雷达信号处理流程
  10. 百度api翻译html,帮助文档首页
  11. python就业方向-学完Python的7大就业方向,哪个赚钱多?
  12. 关于内网和外网 区别
  13. 东方时尚驾校科目一网上视频快速通过方法
  14. YOLOv5 NameError: name ‘SPPF‘ is not defined
  15. 密码重置用HTML怎么弄,win10密码重置盘怎么弄-win10创建密码重置盘的方法 - 河东软件园...
  16. CSMA/CD协议详解
  17. Latex 定制合并表格
  18. Unity-URP学习笔记(八)使用RendererFeature制作屏幕后期-高斯模糊
  19. 少儿重疾险排名的选择与注意事项
  20. JavaWeb实现生成二维码

热门文章

  1. 计算机管理设置,win10系统打开计算机管理的设置步骤
  2. 如何有效开展小组教学_高效课堂 有效教学 | 教育部专家到徐州市第三中学开展教研活动...
  3. python 的内存回收,及深浅Copy详解
  4. 20165234 《Java程序设计》第五周学习总结
  5. Android 热补丁动态修复框架小结
  6. JQuery 对表单进行初始化操作
  7. Hive高级用法汇总
  8. 继承,is,as,多态
  9. ActionScript 3.0入门:Hello World、文件读写、数据存储(SharedObject)、与JS互调
  10. Zend Debugger 配置