springboot使用spock做单测

静态方法mock: PowerMockito

需要注意只配置@PrepareForTest和RunWith是不生效的,这样会爆方法找不到的java异常, 原因是spock本身就有@RunWith(Sputnik.class)

@PrepareForTest({ StaticClassYouWantTest.class})
@RunWith(PowerMockRunner.class)

需要改成

@PrepareForTest({ StaticClassYouWantTest.class})
@RunWith(PowerMockRunner.class)
@PowerMockRunnerDelegate(Sputnik.class)

使用时

PowerMockito.mockStatic(StaticClassYouWantTest.class)
Mockito.when(StaticClassYouWantTest.methodA()).thenReturn(true)

PrepareForTest使用时机

1. PowerMockito.whenNew

必须加注解@PrepareForTest和@RunWith。
注解@PrepareForTest里写的类是需要mock的new对象代码所在的类。

2. mock final

必须加注解@PrepareForTest和@RunWith。
注解@PrepareForTest里写的类是final方法所在的类。

3. mock 静态方法

必须加注解@PrepareForTest和@RunWith。
注解@PrepareForTest里写的类是静态方法所在的类。

4. mock私有方法

只需要加注解@PrepareForTest
注解里写的类是私有方法所在的类

5. mock系统类的静态方法

必须加注解@PrepareForTest和@RunWith。
注解里写的类是需要调用系统方法所在的类

ref :

https://blog.csdn.net/qaz296490709/article/details/72880370

springboot +spock相关推荐

  1. SpringBoot+Spock的熟悉之路(二):Spock,Mock和Mockitio的关系

    Spock,Mock和Mockitio的关系 前言 环境 依赖 Spock和Mockito Mockito的简述 Mock,Stub和Spy 数据准备 Mock Stub Spy Spock中的Moc ...

  2. SpringBoot + Spock

    SpringBoot+Spock单元测试最强解析,没有之一 Maven配置 THE CODE Maven配置 参考spock提供的 demo spock本身依赖groovy 且我们需要和spring集 ...

  3. SpringBoot+Spock的熟悉之路(一):能正常启动并使用Spock

    能正常启动并使用Spock 前言 对Spock的一言概述 环境 依赖 IDEA的准备 插件 项目结构 初次使用 类的结构 一个简单的例子 简单总结 遇到的问题 项目启动或者Build Module的时 ...

  4. spock做post请求get请求,在springboot环境下使用gradle构建工具的demo,IDEA的开发工具

    1.创建一个springboot项目,基于gradle的创建 1)new一个project 2)选择spring initializr 3)选择gradle project,然后next 4)选择一个 ...

  5. Spock是什么?它和JUnit,JMock有什么区别?

    这是Spock系列的第一篇文章,整个专辑会介绍Spock的用途,为什么使用Spock?它能给我们带来什么好处?它和JUnit.JMock.Mockito有什么区别?我们平时写单元测试代码的常见问题和痛 ...

  6. SpringBoot应用场景启动器

    SpringBoot主程序类,主入口 项目目录结构 下面的图中展示了上一篇博客中创建的入门程序,从这里我们开始了解关于SpringBoot程序启动原理 我们知道在Java中,每一个Java应用程序都有 ...

  7. 基于Groovy的Spock单元测试框架入门指南

    文章目录 1. Spock Primer 基本概念 1.1 对比Junit 1.2 Imports 1.3 Specification测试类 1.4 Fields 属性 1.5 Fixture Met ...

  8. 继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错? springboot 两种方式稳定解决跨域问题

    继承WebMvcConfigurer 和 WebMvcConfigurerAdapter类依然CORS报错???springboot 两种方式稳定解决跨域问题! 之前我写了一篇文章,来解决CORS报错 ...

  9. Dockerfile springboot项目拿走即用,将yml配置文件从外部挂入容器

    Dockerfile 将springboot项目jar包打成镜像,并将yml配置文件外挂. # 以一个镜像为基础,在其上进行定制.就像我们之前运行了一个 nginx 镜像的容器,再进行修改一样,基础镜 ...

最新文章

  1. photoshop小结
  2. C语言二维数组元素的多种表示方法小结
  3. emacs python ide_Emacs Python IDE win7 x64
  4. JS之返回字符首次出现位置的indexOf
  5. 【 CodeForces - 864B】Polycarp and Letters(水题,字符串,有坑)
  6. 用于将带有查询字符串的复杂对象传递到Web API方法的自定义模型绑定器
  7. javaweb--HTTP状态码
  8. 查看计算机80端口,电脑win10 80端口被占用的检测和解决方法
  9. t_user is not mapped [from t_user as u where u.loginname = :loginname and u.password =:password]
  10. Atitit eclipse新特性总结3.1---4.4  4.5
  11. php如何获取当前几号,PHP如何获取当前时间
  12. mpg文件怎么转换成mp4
  13. 制造业数字化转型的意义是什么?
  14. c语言:用牛顿迭代法求方程在1.5附近的根:2x^3-4x^2+3x-6=0.
  15. 说说我是如何拿下腾讯offer的
  16. 2017年总结:人生百味,有你真好
  17. Word排版(小计)
  18. 【渝粤教育】国家开放大学2018年春季 8624-21T物业管理案例分析 参考试题
  19. vue 项目中 自动生成 二维码
  20. 计算机毕业设计之java+javaweb的电动车实名制挂牌管理系统

热门文章

  1. html div height=,height在css里什么意思?
  2. 快速排序算法-c语言实现,快速排序算法实现(C语言)(转)
  3. TMS320F28335项目开发记录6_28335之cmd文件详解
  4. java memento_Java备忘录(Memento)模式实现的示例代码
  5. Kylin 调优方法
  6. 超方便插件lombok的使用(eclipse版本)
  7. java 经典语录_java编程经典语录
  8. druid连接mysql报错
  9. GST--Style Tokens: Unsupervised Style Modeling, Control and Transfer in End-to-End Speech Synthesis
  10. PowerShell运行脚本却用记事本打开