当前位置: 首页 > news >正文

Spock mock私有方法

mock私有方法

被测试的方法是MiddleGroundAppListBO​类下的getPromptIdKeyAppPromptInfoMap方法

  private Map<Long, AppPromptInfoModel> getPromptIdKeyAppPromptInfoMap(String cubeAppIdentity) {List<AppPromptInfoDO> promptByApp = knowledgeCubeQueryRemoteService.getPromptByApp(cubeAppIdentity);return AppPromptInfoDOConverter.convertToPromptIdKeyMap(promptByApp);}

mock方法编写:

直接middleGroundAppListBO
.getPromptIdKeyAppPromptInfoMap("4HPF1HTFDR") 写就行, groovy和Java不一样,groovy能直接访问private方法.

   @Resourceprivate IKnowledgeCubeQueryRemoteService knowledgeCubeQueryRemoteService;def "middleGroundAppListBO.getPromptIdKeyAppPromptInfoMap"() {given:MiddleGroundAppListBO middleGroundAppListBO = new MiddleGroundAppListBO(knowledgeCubeQueryRemoteService: knowledgeCubeQueryRemoteService)when: "测试方法"Map<Long, AppPromptInfoModel> map = middleGroundAppListBO.getPromptIdKeyAppPromptInfoMap("4HPF1HTFDR")log.info("map : {}", map)then: "校验结果"map != null}

PowerMockito

下面的方法我没试过,先记录下,后面有时间我去试试.

  测试目标代码:

| 01​ | publicclassClassUnderTest {​ |

| 03​ | publicbooleancallPrivateMethod() { ​ |

| 09​ | privatebooleanisExist() {​ |

 测试用例代码:

| 01​ | @RunWithclass``) ​ |

| 02​ | publicclassTestClassUnderTest {​ |

| 05​ | @PrepareForTestclass``) ​ |

| 06​ | publicvoidtestCallPrivateMethod() ``throwsException { ​ |

| 08​ | ClassUnderTest underTest = PowerMockito.mock(ClassUnderTest.); ​ |

| 10​ | PowerMockito.when(underTest.callPrivateMethod()).thenCallRealMethod(); ​ |

| 12​ | PowerMockito.when(underTest, ).thenReturn();​ |

| 14​ | Assert.assertTrue(underTest.callPrivateMethod());​ |

   说明:和Mock普通方法一样,只是需要加注解@PrepareForTest(ClassUnderTest.class),注解里写的类是私有方法所在的类。

http://www.lryc.cn/news/374038.html

相关文章:

  • 网络协议四
  • 大数据入门实践一:mac安装Hadoop,Hbase,FLume
  • openGauss 6.0.0 一主二备集群安装及使用zcbus实现Oracle到openGauss的数据同步
  • 0118__C语言——float.h文件
  • settings和toolchains.xml 区别用法配置
  • leetcode打卡#day43 携带研究材料(第六期模拟笔试)、416. 分割等和子集
  • MPLS的配置
  • 【机器学习】机器学习与教育科技在个性化教学中的融合应用与性能优化新探索
  • C++:十大排序
  • Python武器库开发-武器库篇之Mongodb未授权漏洞扫描器(五十六)
  • 【论文速读,找找启发点】2024/6/16
  • canal监控mysql变化
  • MySQLWorkbench导出sql文件
  • 不一样的SYSTEM APP(SYSTEM flag和system_prop区别)
  • C++ 和 JAVA 位运算符
  • 项目进度和成本管理
  • Dorkish:一款针对OSINT和网络侦查任务的Chrome扩展
  • 树莓派4B_OpenCv学习笔记10:调整视频帧大小
  • MySQL 保姆级教程(五):数据过滤
  • 《全职猎人》
  • Linux各目录的作用
  • Windows Docker Desktop 安装 postgres
  • C# OpenCvSharp Mat操作-创建Mat-构造函数
  • 【制作100个unity游戏之29】使用unity复刻经典游戏《愤怒的小鸟》(完结,附带项目源码)
  • 稀疏矩阵是什么 如何求
  • 57.Linux/Unix 系统编程手册(下) -- SOCKET : Unix domain
  • Hvv--知攻善防应急响应靶机--Linux1
  • Solus Linux: 有自己的软件包管理器
  • Java GUI编程
  • ROS机器人小车建模仿真与SLAM