返回顶部
首页 > 资讯 > 后端开发 > JAVA >PowerMock使用-Mock私有方法
  • 139
分享到

PowerMock使用-Mock私有方法

java单元测试PowerMockMock私有方法 2023-09-16 12:09:36 139人浏览 薄情痞子
摘要

前言 本篇文章将说明如何使用PowerMock对私有方法进行Mock。关于使用PowerMock需要引入哪些依赖,请参考PowerMock使用-依赖准备。 正文 被测试类如下所示。 public cl

前言

本篇文章将说明如何使用PowerMock对私有方法进行Mock。关于使用PowerMock需要引入哪些依赖,请参考PowerMock使用-依赖准备

正文

测试类如下所示。

public class MockPrivateMethod {    public boolean isTrue() {        return returnTrue();    }    private boolean returnTrue() {        return true;    }}

被测试类中有一个公共方法isTrue(),在isTrue()方法中会调用MockPrivateMethod的私有方法returnTrue()。测试类如下所示。

@RunWith(PowerMockRunner.class)@PrepareForTest(MockPrivateMethod.class)public class PowerMockTest {    @Test    public void mockPrivate() throws Exception {        MockPrivateMethod mockPrivateMethod = PowerMockito.mock(MockPrivateMethod.class);        PowerMockito.when(mockPrivateMethod, "returnTrue").thenReturn(false);        PowerMockito.when(mockPrivateMethod.isTrue()).thenCallRealMethod();        assertThat(mockPrivateMethod.isTrue(), is(false));    }}

Mock私有方法打桩时,需要使用PowerMockito.when(mock实例, "私有方法名").thenReturn(期望返回值)的形式设置mock实例的私有方法的返回值,如果私有方法有参数,还需要在私有方法名后面添加参数占位符,比如PowerMockito.when(mock实例, "私有方法名", anyInt()).thenReturn(期望返回值)。上面例子中进行断言时,调用私有方法采取了调用公共方法来间接调用私有方法的形式,单元测试代码对业务代码造成了入侵,因此如果仅仅只是为了验证一个私有方法,可以使用Whitebox来方便的调用私有方法,如下所示。

public class MockPrivateMethod {    private boolean returnTrue() {        return true;    }}@RunWith(PowerMockRunner.class)@PrepareForTest(MockPrivateMethod.class)public class PowerMockTest {    @Test    public void mockPrivate() throws Exception {        MockPrivateMethod mockPrivateMethod = PowerMockito.mock(MockPrivateMethod.class);        PowerMockito.when(mockPrivateMethod, "returnTrue").thenReturn(false);        assertThat(Whitebox.invokeMethod(mockPrivateMethod, "returnTrue"),                is(false));    }}

来源地址:https://blog.csdn.net/Sakura_Sacrifice/article/details/128773618

--结束END--

本文标题: PowerMock使用-Mock私有方法

本文链接: https://lsjlt.com/news/409895.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PowerMock使用-Mock私有方法
    前言 本篇文章将说明如何使用PowerMock对私有方法进行Mock。关于使用PowerMock需要引入哪些依赖,请参考PowerMock使用-依赖准备。 正文 被测试类如下所示。 public cl...
    99+
    2023-09-16
    java 单元测试 PowerMock Mock私有方法
  • 如何使用PowerMock来Mock静态函数
    这篇文章主要介绍如何使用PowerMock来Mock静态函数,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!EasyMock和Mockito等框架,对static, final, private方法均是不能mock的。...
    99+
    2023-06-17
  • 如何mock当前类的私有方法
    背景 基础知识 mockito单元测试:它的做法是mock掉当前类的所有外部依赖,保障自己的代码没有问题。举个例子,如果数据库查询的语句出了问题,单元测试不会测试出来。因为它直接mock掉了,不会去真...
    99+
    2023-09-01
    单元测试 junit java
  • Powermock静态方法怎么使用
    本篇内容主要讲解“Powermock静态方法怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Powermock静态方法怎么使用”吧!Mockito 很强大, 但是它不支持静态方法.所以, ...
    99+
    2023-06-04
  • 如何在python中使用私有属性和私有方法
    本篇文章给大家分享的是有关如何在python中使用私有属性和私有方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。Python的优点有哪些1、简单易用,与C/C++、Java、...
    99+
    2023-06-14
  • python在测试中使用 Mock的方法
    这篇“python在测试中使用 Mock的方法”文章,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要参考一下,对于“python在测试中使用 Mock的方法”,小编整理了以下知识点,请大家跟着小编的步伐一步一步的慢慢...
    99+
    2023-06-06
  • Python 私有属性与私有方法
    目录1. 场景定义2. 语法定义3. 调用分析4. Python伪私有属性和私有方法1. 场景定义 私有属性: 是指在 Python 的面向对象开发过程中,对象的某些属性只想在对象的...
    99+
    2024-04-02
  • 聊聊Python私有属性与私有方法
    1、 场景定义私有属性是指在 Python 的面向对象开发过程中,对象的某些属性只想在对象的内部被使用,但不想在外部被访问到这些属性。即:私有属性是对象不愿意公开的属性。私有方法是指在 Python 的面向对象开发过程中,对象的某些方法或者...
    99+
    2023-05-14
    Python 私有属性 私有方法
  • Java9中接口的私有方法如何使用
    本文小编为大家详细介绍“Java9中接口的私有方法如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java9中接口的私有方法如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Java 8 之前版本Ja...
    99+
    2023-07-06
  • Java9中接口的私有方法怎么使用
    本篇内容介绍了“Java9中接口的私有方法怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java 8 之前版本Java 8 之前 ,...
    99+
    2023-07-06
  • PHP中私有静态方法的使用详解
    PHP是一种广泛应用的编程语言,其面向对象特性使得代码的结构更加清晰和可维护。在PHP中,除了常见的公有方法和属性外,还存在私有方法和私有属性,它们只能在类的内部访问,而无法在外部直接...
    99+
    2024-04-02
  • 使用 gomonkey Mock 函数及方法示例详解
    目录前言函数方法参考前言 在 Golang 语言中,写单元测试的时候,不可避免的会涉及到对其他函数及方法的 Mock,即在假设其他函数及方法响应预期结果的同时,校验被测函数的响应是否...
    99+
    2024-04-02
  • javascript中公有方法和私有方法怎么用
    这篇文章主要介绍“javascript中公有方法和私有方法怎么用”,在日常操作中,相信很多人在javascript中公有方法和私有方法怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2024-04-02
  • python中有哪些统计mock的方法
    python中有哪些统计mock的方法?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。1、说明called:表示是否调用过。call_count:返回调用的次数。call_arg...
    99+
    2023-06-15
  • docker私有仓库的搭建和使用的方法
    本篇内容介绍了“docker私有仓库的搭建和使用的方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.下...
    99+
    2024-04-02
  • python中使用私有方法需要注意什么
    这篇文章将为大家详细讲解有关python中使用私有方法需要注意什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问...
    99+
    2023-06-14
  • PHP私有静态方法怎么定义和使用
    这篇文章主要介绍“PHP私有静态方法怎么定义和使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“PHP私有静态方法怎么定义和使用”文章能帮助大家解决问题。什么是私有静态方法?在PHP面向对象编程中,...
    99+
    2023-07-05
  • Java怎么通过反射获取私有构造、私有对象、私有字段、私有方法
    这篇文章主要介绍了Java怎么通过反射获取私有构造、私有对象、私有字段、私有方法,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。Java反射获取私有构造、私有对象、私有字段、私...
    99+
    2023-06-22
  • Java如何通过反射获取私有构造、私有对象、私有字段、私有方法
    Java反射获取私有构造、私有对象、私有字段、私有方法 1. 创建测试的私有对象 public class Person { private int age = 5; ...
    99+
    2024-04-02
  • 如何正确使用PHP中的私有静态方法
    使用PHP中的私有静态方法是一种保护类内部逻辑的有效方式。私有静态方法只能在同一个类内部进行调用,外部无法访问,从而保证了程序的安全性和封装性。在编写PHP代码时,正确使用私有静态方法...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作