首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏好好学习

    PowerMock(一):PowerMock的使用

    本文主要介绍PowerMock的基本使用。 Mock的框架有很多中比如EasyMock等,这里选用PowerMock是因为PowerMock可以用来Mock 私有方法,静态方法以及final方法。EasyMock等则不能。 PowerMock的使用 环境 软件 版本 junit 4.13 powermock 2.0.7 引入依赖 <properties> <powermock.version>2.0.7 >powermock-module-junit4</artifactId> <version>${powermock.version}</version> > <artifactId>powermock-api-mockito2</artifactId> <version>${powermock.version

    8.9K71发布于 2021-08-18
  • 来自专栏软件测试那些事

    Powermock系列之-01 Powermock与Thead.sleep

    示例程序如下: import org.junit.Rule; import org.junit.Test; import org.mockito.Mockito; import org.powermock.core.classloader.annotations.PrepareForTest ; import org.powermock.modules.junit4.rule.PowerMockRule; import static org.powermock.api.mockito.PowerMockito.spy ; import static org.powermock.api.mockito.PowerMockito.doThrow; import static org.junit.Assert.assertEquals

    2.8K20发布于 2020-12-01
  • 来自专栏雨临Lewis的博客

    PowerMock问题汇总

    PowerMock报错导致无法运行测试类 在执行单元测试时报错如下: 1 ScriptEngineManager providers.next(): javax.script.ScriptEngineFactory jdk.nashorn.api.scripting.NashornScriptEngineFactory not a subtype 在Stack Overflow上找到了同样的错误,该报错是在使用了PowerMock 在当前测试类里加上一个忽略该异常的注解:@PowerMockIgnore,即可正常运行单元测试,如下: 1 2 3 4 5 6 7 import org.powermock.core.classloader.annotations.PowerMockIgnore PowerMockRunner.class) @PowerMockIgnore({"javax.script.*"}) public class VendorTest { //.... } 顺带一提,这里使用的PowerMock 参考链接 Powermock keeps throwing errors for ScriptEngineManager 注意 本文最后更新于 August 19, 2021,文中内容可能已过时,请谨慎使用

    1.5K20编辑于 2022-01-12
  • 来自专栏一滴水的眼泪

    Mockito和PowerMock用法

    PowerMock是Java开发中的一种Mock框架,用于单元模块测试。 PowerMock可以实现完成对private/static/final方法的Mock(模拟),而Mockito可以对普通的方法进行Mock,如:public等。 具体事例如下: 依赖 <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4</artifactId </groupId> <artifactId>powermock-api-mockito</artifactId> <version>${powermock.version}</version 当你需要使用PowerMock强大功能(Mock静态、final、私有方法等)的时候,就需要加注解@PrepareForTest。

    3.9K33发布于 2020-09-24
  • 来自专栏软件测试那些事

    临时工 - PowerMock系列4

    解决方法 幸好Powermock提供了whenNew这样一个Mock方法,可以解决上述临时变量的问题。 demo案例的测试用例如下 import static org.junit.Assert.assertEquals; import static org.powermock.api.mockito.PowerMockito.doReturn ; import static org.powermock.api.mockito.PowerMockito.mock; import java.io.BufferedReader; import java.io.FileInputStream import java.io.InputStreamReader; import org.junit.Test; import org.junit.runner.RunWith; import org.powermock.api.mockito.PowerMockito ; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4

    1.1K30发布于 2020-12-01
  • 来自专栏听Allen瞎扯淡

    玩花招的PowerMock

    这就是我要谈PowerMock的前提! 现在,轮到玩花招的PowerMock出场了。有了它,什么静态方法,方法内部实例,乃至私有方法,统统都是浮云。 我选择了PowerMock针对Mockito的扩展: <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mockito 倘若熟悉Mockito,可以看出PowerMock完全沿袭了Mockito的风格(当然,针对EasyMock的扩展则会沿袭EasyMock的风格,这是PowerMock体贴人的地方): @Test 我虽然没有看过PowerMock的源代码,但我猜测,当我们在使用PowerMock去Mock静态方法时,定然是结合反射与代理的方式来完成对该方法的调用,其中必然需要初始化该类。 换言之,让我们仅仅将PowerMock耍弄的种种花招,看做是压箱底的手段。实在走投无路了,再祭出你的杀手锏吧!

    1.7K20发布于 2018-09-10
  • 来自专栏四火的唠叨

    EasyMock、EasyMock Class Extension 和 PowerMock

    final methods or classes Mocking private methods Mock construction of new objects 这个时候,可以使用 PowerMock UserDAO { public final static User getUser(String id) { return null; } } 那么在使用 PowerMock 的时候,代码需要少许修改: import static org.powermock.api.easymock.PowerMock.*; @RunWith(PowerMockRunner.class verify(UserDAO.class); } } 相比前文,变化主要有这几个: 对于 org.easymock.EasyMock 的方法调用变成了 org.powermock.api.easymock.PowerMock

    80210编辑于 2022-07-15
  • 来自专栏Spring相关

    使用PowerMock进行单元测试

    PowerMock是什么? PowerMock是一个Java模拟框架,可用于解决通常认为很难甚至无法测试的测试问题。 使用PowerMock,可以模拟静态方法,删除静态初始化程序,允许模拟而不依赖于注入,等等。PowerMock通过在执行测试时在运行时修改字节码来完成这些技巧。 PowerMock还包含一些实用程序,可让您更轻松地访问对象的内部状态。 举个例子,你在使用Junit进行单元测试时,并不想让测试数据进入数据库,怎么办? 这个时候就可以使用PowerMock,拦截数据库操作,并模拟返回参数。 2. PowerMock包引入 <! -- 单元测试 依赖--> <dependency> <groupId>org.powermock</groupId> <artifactId

    4.4K30编辑于 2022-01-07
  • 来自专栏软件测试那些事

    啥,还有PowerMock搞不定的?

    https://stackoverflow.com/questions/5385161/powermock-testing-set-static-field-of-class static void setFinalStatic powermock也一样。 ? image ?

    1.1K10发布于 2020-12-01
  • 来自专栏测试技术圈

    啥,还有PowerMock搞不定的?

    https://stackoverflow.com/questions/5385161/powermock-testing-set-static-field-of-class static void setFinalStatic powermock也一样。 ? ?

    97910发布于 2019-11-14
  • 来自专栏运维开发故事

    TestNG + PowerMock 单元测试

    我们在项目中主要用到的单元测试框架有 Spring-Boot-Test TestNG、PowerMock 等。 PowerMock 也是一个单元测试模拟框架,它是在其它单元测试模拟框架的基础上做出的扩展。 </groupId> <artifactId>powermock-api-mockito2</artifactId> <version>${powermock.version}</version >powermock-module-junit4</artifactId> <version>${powermock.version}</version> <scope>test</scope > </dependency> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-testng

    2.1K40发布于 2021-05-14
  • 来自专栏全栈程序员必看

    EasyMock PowerMock 的简单使用(with spring Autowired)

    org.junit.Assert;
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.powermock.api.easymock.PowerMock ;
    import org.powermock.core.classloader.annotations.PowerMockIgnore;
    import org.powermock.core.classloader.annotations.PrepareForTest ;
    import org.powermock.modules.junit4.PowerMockRunner;
    import org.springframework.aop.framework.Advised

    85430发布于 2021-05-19
  • 来自专栏软件测试那些事

    异步回调方法-PowerMock系列之6

    *;import org.mockito.invocation.InvocationOnMock;import org.mockito.stubbing.Answer;import demo.org.powermock.async.Client ;import demo.org.powermock.async.Connector;import demo.org.powermock.async.IListener; public class TestClient

    2.8K20发布于 2020-12-01
  • 来自专栏软件测试那些事

    PowerMock正在远去的,竟然是

    昨天天去github上的PowerMock 项目去看了一下。这个项目上次的commit和发布已经是10个月之前了。还积攒了400个问题和13个PR没有合并。 这类的需求催生了PowerMock这样强大的模拟工具,可以通过自定义的类加载器来实现上述需求。因此,在JUnit4的时代,Mockito+PowerMock成为了一个单元测试模拟工具的黄金搭档。 早在2016年,在JUnit5尚未正式发布时,PowerMock团队就对JUnit团队提出了兼容PowerMock的需求( https://github.com/junit-team/junit5/issues 而JUnit团队认为PowerMock的实现机制侵入性太强,并且属于小众需求,因此该需求历时5年多了一直没有实现。 感兴趣的读者可以到Junit5项目中为PowerMock团队的这个需求投票,协助PowerMock团队拿到通向未来的船票。只是这艘渐行渐远的船上,早就有了新的明星。

    3.7K31发布于 2021-09-24
  • 来自专栏软件测试那些事

    PowerMock系列之2

    因此,需要使用Powermock来完成这一需求。

    77710发布于 2020-12-01
  • PowerMock的静态方法与私有方法怎么测试?

    本文将深入浅出地介绍PowerMock的核心应用场景、常见问题、易错点以及如何避免这些问题,并通过实际代码示例加以说明。PowerMock核心应用场景1. PowerMock允许你模拟静态方法,控制其返回值或行为,从而在测试中隔离这些影响。2. PowerMock为此提供了能力。3. 构造函数与Final类模拟对于使用了final类或者需要控制构造函数行为的情况,PowerMock也能提供解决方案,使测试更加灵活和全面。常见问题与易错点1. -- Maven 示例依赖 --><dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4 希望本文能帮助你更好地掌握PowerMock的使用,提升测试的质量和效率。

    1.1K10编辑于 2024-06-27
  • 来自专栏测试人生

    手把手带你学习Mock测试(二)之 PowerMock的入门

    前言 在上一篇《手把手带你入门Mock测试(一)之 PowerMock的入门》文章中,已经简单提及一些关于Powermock的用法,但是入门还未完,我还要坚持把它学习并坚持更新到博客中。

    89430编辑于 2022-12-05
  • 来自专栏软件测试那些事

    我用单例我骄傲- PowerMock系列之3

    而通过Powermock,则可以解决上述问题。 示例代码如下 import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.powermock.api.mockito.PowerMockito ; import org.powermock.core.classloader.annotations.PrepareForTest; import org.powermock.modules.junit4 .PowerMockRunner; import org.powermock.reflect.Whitebox; import static org.junit.Assert.assertEquals;

    3.3K20发布于 2020-12-01
  • 来自专栏测试人生

    手把手带你入门ock测试(一)之 PowerMock的入门

    可能有些同学会好奇了,为什么要重点把PowerMock拿出来呢,因为PowerMock可以解决前面三种框架不能解决的问题,而且PowerMock也是是单元测试中极其强大的测试框架。 PowerMock入门实例 1、引入依赖jar包 <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4 具体示例代码如下: package com.rongrong.powermock.service; import com.rongrong.powermock.dao.StudentDao; /** 答案是否定的,此时我们用PowerMock便可完美解决问题,接下来我们请出powermock登场。 到此,一个简单PowerMock入门结束

    1.5K10编辑于 2022-12-05
  • 用好PowerMock,轻松搞定那些让你头疼的单元测试

    传统的Mockito框架对这些情况束手无策,而PowerMock的出现正好解决了这些痛点。 PowerMock是什么?为什么需要它? PowerMock的核心定位 PowerMock是一个强大的Java单元测试框架,它通过扩展现有的Mock框架(如Mockito和EasyMock),提供了更强大的Mock能力。 -- PowerMock + Mockito 组合 --> <dependency> <groupId>org.powermock</groupId> <artifactId>powermock-module-junit4 PowerMock核心使用场景详解 静态方法Mock 静态方法是最常见的测试难点之一,让我们看看PowerMock如何解决这个问题。 最佳实践与注意事项 谨慎使用PowerMock 虽然PowerMock功能强大,但过度使用可能是代码设计问题的信号。

    10710编辑于 2026-03-09
领券