我尝试使用powermockito通过验证内部

审计()

方法调用。

此内部呼叫由

审计师

对象中正在实例化的

()

类的方法。因为它没有注射,我不能直接模仿它。当我用mock i to验证它时,它总是说“与mock没有交互”。

问题:如何测试保存功能?请帮助!

public class DaoImpl implements Dao{

private Auditor auditor;

@InjectValue

private ObjectLoader loader;

@InjectValue

private ConfigurationProvider confProvider;

@PostConstruct

public void init() {

//Mock this object instantiation and verify audit is called once

auditor = new SyncAuditor(confProvider.getClientConfiguration(), new EventRegProvider());

}

@Override

public void save(final AuditEvt auditEvt) {

final AuditedEvent auditedEvent = builder.build();

auditor.audit(auditedEvent);

}

测试:

@RunWith(PowerMockRunner.class)

@PrepareForTest({ DaoImplTest.class })

@PowerMockIgnore("javax.management.*")

public class DaoImplTest extends PowerMockito {

@InjectMocks

private DaoImpl dataAccess;

@Mock

private SynchAuditor auditorMock;

@Before

public void setUp() throws Exception {

loader = ObjectLoader.init("JUNIT");

loader.bind(ConfigurationProvider.class, configurationProviderMock);

dataAccess = loader.newInstance(DaoImpl.class);

}

@After

public void tearDown() {

loader.release(dataAccess);

ConnectionMgr.disconnect("JUNIT");

}

@Test

public void testSaveAuditEvent() throws Exception {

PowerMockito.whenNew(SynchAuditor.class).

withArguments(Matchers.any(ClientConfiguration.class), Matchers.any(EventRegProvider.class)).thenReturn(this.auditorMock);

final AuditEvent event = AuditEvent.from(null, "principal", UUID.randomUUID().toString(), "randomText",

new AuditEvtDefn((long) 522, "234242", "234242fdgd", true), SUCCESS, null, new GregorianCalendar());

dataAccess.save(event);

Mockito.verify(auditorMock, times(1)).audit(Matchers.any(AuditedEvent.class));

}

即使是powermockito.verifynew也说没有交互作用。

PowerMockito.verifyNew(SynchronousAuditor.class,times(1)).withArguments(Matchers.any(AuditorClientConfiguration.class),Matchers.any(EventRegistrationProvider.class));

powermock跳过某方法_如何使用powermock验证内部方法调用?相关推荐

  1. Java main方法_解释Java中的main方法,及其作用_一个java文件中可包含多个main方法

    public static void main(String[] args) {} 或者 public static void main(String args[]) {} main方法是我们学习Ja ...

  2. java 异步调用方法_乐字节Java编程之方法、调用、重载、递归

    一.概述 方法是指人们在实践过程中为达到一定目的和效果所采取的办法.手段和解决方案. 所谓方法,就是解决一类问题的代码的有序组合,是一个功能模块.编程语言中的方法是组合在一起来执行操作语句的集合.例如 ...

  3. 中艺人脸识别考勤机使用方法_人脸识别考勤机的使用方法及注意事项 - 全文

    人脸识别考勤机概要 人脸识别考勤机是一种新型的存储类考勤机,事先只需采集员工的面像,并建立档案,当员工上下班站在人脸识别考勤机的识别区域内,考勤机上就会快速的记录考勤状况并保存记录. 人脸识别考勤机是 ...

  4. 中艺人脸识别考勤机使用方法_人脸识别考勤机的使用方法及注意事项

    人脸识别考勤机概要 人脸识别考勤机是一种新型的存储类考勤机,事先只需采集员工的面像,并建立档案,当员工上下班站在人脸识别考勤机的识别区域内,考勤机上就会快速的记录考勤状况并保存记录. 人脸识别考勤机是 ...

  5. python的del方法_关于python:__ del__方法是什么,如何调用它?

    我正在阅读代码. 在其中定义了__del__方法的类. 我发现此方法用于销毁类的实例. 但是,我找不到使用此方法的地方. 其主要原因是我不知道如何使用此方法,可能不是这样:obj1.del(). 因此 ...

  6. java 子类的同名方法_子类父类拥有同名的方法时……

    子类父类拥有同名的方法时-- (这个程序是不能运行的) packageyanzheng; public classParentChildTest { public static voidmain(St ...

  7. smc数显压力表设定方法_压力控制器工作原理与设定方法

    一.压力控制器的简介与原理 机械式压力控制器属于制冷机组压力的控制的元器件,在制冷系统中主要用作高压/低压/高低压压力控制器.使用方法简单,在压力控制器上面设定一个压力,以高于或者低于此压力的压力控制 ...

  8. splice方法_[7000字]JavaScript数组所有方法基础总结

    基础决定一个人的上限,很多时候我们感叹别人在实现一个功能时使用方法的精妙,并且反思,为什么别人想的出来自己却想不出来?我觉得主要是因为对于基础的掌握上有很大的差距.本文总结数组的所有方法的基础使用,希 ...

  9. 班尼机器人维修方法_工业机器人常见故障和修理方法

    原标题:工业机器人常见故障和修理方法 机械手常见故障和修理方法 1.先动口再动手 对于有故障的电气设备,不应急于动手,应先询问产生故障的前后经过及故障现象.对于生疏的设备,还应先熟悉电路原理和结构特点 ...

最新文章

  1. 「欧拉定理」学习笔记(费马小定理)
  2. 智能车百度赛道培训第二弹-算法篇
  3. 【cntk速成】cntk图像分类从模型自定义到测试
  4. 关于PageRank的一些见解
  5. 数据库复杂查询,多表多联
  6. mpvue 微信小程序 显示 转发按钮
  7. 八个角最多可以把平面分成多少部分?_平面设计构图的基本形式
  8. “相当一部分”HPE公司OpenStack工作人员被转移至SUSE
  9. 服务器上build.xml文件乱码解决(亲测有效)
  10. 看门狗超时前在内核打印信息
  11. 【读书笔记】实战Java高并发程序设计(第2版)读书笔记
  12. Spring Cloud 与微服务学习总结(16)—— 微服务架构统一安全认证设计与实践
  13. JFinal中实体类存取之循序渐进法
  14. word字间距异常处理方式
  15. Jquery中BlockUI的遮罩效果详解
  16. 路由器linux校园网,还在为无法突破校园网的限制而烦恼?动动手,借助路由器完成锐捷认证...
  17. word流程图怎么使箭头对齐_怎样在word中绘制流程图方框间距相同,排列整齐,箭头笔直...
  18. 遇见CUBA CLI
  19. 腾讯云Ubuntu18.04萌新摸索(一)搜狗输入法
  20. 手机室内地磁定位软件_一种基于手机地磁和场景图像的室内定位方法与流程

热门文章

  1. 酷狗音乐TOP500爬虫
  2. 【图像处理:频率域平滑与锐化】理想滤波器,巴特沃思滤波器,高斯滤波器
  3. DNS域名解析过程详解
  4. 拼多多如何提高大促报名通过率?
  5. JS来判断客户端是否已安装Adobe Reader软件并提示下载安装
  6. OUC_人工智能_战胜选择恐惧症
  7. 前端面经——腾讯暑期实习生
  8. JavaFx_JDK1.8 简单操作
  9. 大数据技术原理与应用 概念、存储、处理、分析和应用(林子雨)——第八章 Hadoop再探讨
  10. 微信小程序购物商城系统