调用 PowerMockito.mockStatic 时出现 AbstractMethodError

2023-12-21

我正在尝试使用 PowerMockito 来模拟静态调用。然而,当我尝试这样做时,PowerMockito.mockStatic调用抛出一个 AbstractMethodError:

java.lang.AbstractMethodError: org.mockito.configuration.MockitoConfiguration.enableClassCache()Z
    at org.mockito.internal.configuration.GlobalConfiguration.enableClassCache(GlobalConfiguration.java:63)
    at org.mockito.internal.creation.instance.ObjenesisInstantiator.<init>(ObjenesisInstantiator.java:11)
    at org.mockito.internal.creation.instance.InstantiatorProvider.<clinit>(InstantiatorProvider.java:7)
    at org.powermock.api.mockito.internal.mockcreation.MockCreator.createMethodInvocationControl(MockCreator.java:110)
    at org.powermock.api.mockito.internal.mockcreation.MockCreator.mock(MockCreator.java:58)
    at org.powermock.api.mockito.PowerMockito.mockStatic(PowerMockito.java:70)

由于这是我在单元测试方法中所做的第一件事,因此它实际上尚未与我自己的任何代码进行交互。

我试图模拟的类不在 Spring 安全库中:SecurityContextHolder.

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.PowerMockIgnore;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
import org.springframework.security.core.context.SecurityContext;
import org.springframework.security.core.context.SecurityContextHolder;

@RunWith(PowerMockRunner.class)
@PrepareForTest({ SecurityContextHolder.class })
@PowerMockIgnore({ "org.slf4j.*", "javax.management.*", "org.apache.log4j.*"})
public class AuthorizationSuccessHandlerTest {

    @Test
    public void testAuthenticationSuccess() throws Exception {
        // this first line throws the exception:
        PowerMockito.mockStatic(SecurityContextHolder.class); 

        SecurityContext mockContext = Mockito.mock(SecurityContext.class);
        Mockito.when(SecurityContextHolder.getContext()).thenReturn(mockContext);
        // .. other stuff to follow that we never get to
    }

}

我有以下 Maven 依赖项:

    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>1.10.19</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-module-junit4</artifactId>
        <version>1.6.2</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-easymock</artifactId>
        <version>1.6.2</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.powermock</groupId>
        <artifactId>powermock-api-mockito</artifactId>
        <version>1.6.2</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.easymock</groupId>
        <artifactId>easymock</artifactId>
        <version>3.0</version>
        <scope>test</scope>
    </dependency>

(本测试中没有使用 EasyMock 的东西,但为了完整性,我将它们包括在内,以防出现某种冲突。我尝试过mockito-all 和mockito-core,在行为上没有明显的差异。删除直接的mockito依赖项(mockito-all 或mockit-core)也没有区别。)

我究竟做错了什么?


None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

调用 PowerMockito.mockStatic 时出现 AbstractMethodError 的相关文章

  • 如何从 Play WSClient 的字符串创建 WSResponse 对象

    文档 https www playframework com documentation 2 4 x JavaTestingWebServiceClients Mock the web service建议使用模拟Web服务测试基于WSCli
  • android.view.InflateException:二进制 XML 文件行 #11:膨胀类 ImageView 时出错

    我只是尝试制作一个小的 android java xml 应用程序来计算游戏的分数 它给了我这个错误 Error inflateing class ImageView 有人知道解决方案吗 我实际上搜索了 ppl 说添加这个 android
  • Quarkus 不以编程方式选择 bean

    我试图以编程方式选择 bean 但 quarkus 不会注入 bean 并引发异常 不支持吗 public enum ReportType ONE TWO Qualifier Retention RUNTIME Target METHOD
  • Java 读取大文本文件时出现 OutOfMemoryError

    我是 Java 新手 正在读取非常大的文件 需要一些帮助来理解问题并解决它 我们有一些遗留代码 必须对其进行优化才能正常运行 文件大小仅在 10mb 到 10gb 之间变化 只有当文件开始大小超过 800mb 时才会出现启动问题 Input
  • 如何将现有的 SQLite3 数据库导入 Room?

    好吧 我在桌面上使用 SQLite3 创建了一个只需要读取的某些信息的数据库 我正在制作的应用程序不需要在此表中插入或删除信息 我在 Room 数据库层上做了相当多的谷歌搜索 所有文档都需要在构建应用程序时在 Room 中创建一个新的数据库
  • Kafka Java Consumer 已关闭

    我刚刚开始使用卡夫卡 我面临着消费者的一个小问题 我用Java写了一个消费者 我收到此异常 IllegalStateException 此消费者已关闭 我在以下行中遇到异常 ConsumerRecords
  • 使用 JAX-WS 的 WebLogic 中没有模式导入的单个 WSDL

    如何使用 JAX WS 配置由 WebLogic 10 3 6 生成的 Web 服务 以将对象架构包含在单个 WSDL 文件声明 而不是导入声明 中 示例代码 界面 import javax ejb Local Local public i
  • Java - JPanel 内有边距和 JTextArea

    我想创建这样的东西 主面板有其边距 x 并且 TextArea 位于该面板的中心 几乎填满了面板 底部是另一个具有自定义尺寸 高度 y 的面板 可以使用某些快捷方式将其切换为可见和不可见 底部面板有 FlowLayout 和几个元素 问题是
  • Java 中的 ExecuteUpdate sql 语句不起作用

    我正在学习如何将 SQL 与 Java 结合使用 我已成功安装 JDBC 驱动程序 并且能够从数据库读取记录并将其打印在屏幕上 我的问题发生在尝试执行更新或插入语句时 没有任何反应 这是我的代码 问题所在的方法 public static
  • 将现有 eclipse 项目导出到 war 文件时出现“模块名称无效”

    我正在尝试将现有 Eclipse 项目导出到 war 文件 但无论我在 WAR Export 对话框页面中输入什么 系统总是返回 模块名称无效 我不知道如何解决这个问题 谢谢您的帮助 我有同样的问题 我修复了它 请按照以下步骤操作 您可以创
  • Android 解析 JSON 卡在 get 任务上

    我正在尝试解析一些 JSON 数据 我的代码工作了一段时间 我不确定我改变了什么突然破坏了代码 当我运行代码时 我没有收到任何运行时错误或警告 我创建一个新的 AsyncTask 并执行它 当我打电话时 get 在这个新任务中 调试器在此行
  • 合并两个地图的最佳实践是什么

    如何将新地图添加到现有地图 地图具有相同的类型Map
  • 多线程——更快的方法?

    我有一堂有吸气剂的课程getInt 和一个二传手setInt 在某个领域 比如说领域 Integer Int 一个类的一个对象 比如说SomeClass The setInt 这里是同步的 getInt isn t 我正在更新的值Int来自
  • java swing:向 JTree 项目添加自定义图形按钮

    我想在 JTree 中的项目右侧添加一个带有小图标的附加按钮 这可以做到吗 如果是这样 怎么办 thanks Clamp 你在这方面成功了吗 我想做同样的事情 但很难让 JButton 响应用户 设置渲染器以显示按钮的过程很顺利 但所有鼠标
  • Java 中的微分方程

    我正在尝试用java创建一个简单的SIR流行病模型模拟程序 基本上 SIR 由三个微分方程组定义 S t l t S t I t l t S t g t I t R t g t I t S 易感人群 I 感染人群 R 康复人群 l t c
  • 为什么我不能将 Collection 转换为 Collection>

    问题的关键是 为什么这会导致编译时错误 List
  • Jackson 反序列化相当于 @JsonUnwrapped 吗?

    假设我有以下课程 public class Parent public int age JsonUnwrapped public Name name 生成 JSON age 18 first Joey last Sixpack 我如何将其反
  • 如何使用注释处理 Hibernate 和 Spring 中的连接查询?

    我正在使用 Spring 和 Hibernate 以及 MySQL 开发应用程序 我是 Hibernate 新手 完成了基本任务 现在我需要在选择查询中应用联接以使用注释从多个表中获取数据 我已经搜索过但仍然没有任何想法 这是我的数据库表和
  • 你能快速告诉我这个伪代码是否有意义吗?

    我相信我的代码现在是万无一失的 我现在将写出伪代码 但我确实有一个问题 为什么 DRJava 要求我返回 if 语句之外的内容 正如你所看到的 我为 ex 写了 return 1 只是因为它问了 但是它永远不会返回该值 谁可以给我解释一下这
  • 如何使用 Jest 从 ElasticSearch 获取索引列表

    我正在尝试使用 Jest 检索索引列表 但我只得到 Stats statistics new Stats Builder build result client execute statistics 如何从结果中检索索引列表 除了统计之外

随机推荐

  • idn2.h:没有这样的文件或目录

    我使用的是 64 位 Centos 6 6 想要安装 libidn2 devel 我试过yum install libidn2 devel但这不起作用 我尝试从互联网上的各个网站下载rpm 手动解决递归依赖关系 不是这样 很快我就陷入了依赖
  • 使用线程计算不同单词的数量

    目的是计算文件中不同单词的数量 更新 先前的代码已成功完成 现在我必须做同样的事情但是使用threads 天哪 我讨厌他们 此外我还想与信号量为了更好的流动 代码包含一些以前尝试中遗漏的额外内容 我正在尝试找出可以使用的内容 我一次可以读一
  • 如何在 MATLAB 中重新定义 .^ 运算符?

    如何重新定义指数函数 在 MATLAB 中 从 x y to sign x abs x y 您可以在 MATLAB 中重新定义算术运算符吗 可以 Should你在 MATLAB 中重新定义了算术运算符 呃 可能不是 为什么 因为 MATLA
  • SwiftUI .deleteDisabled() 未按预期工作

    iOS 16 刚刚发布 我正在尝试更新我的应用程序 在做这件事的时候 我偶然发现了一个问题 在 iOS 15 中 我有一个可以删除项目的列表 但这只有当 isEditing 变量为true 问题是 deleteDisabled 没有做我期望
  • java中使用zxing扫描多个条形码

    我需要从 tiff 读取 pdf417 条形码 图像上通常有多个条形码 这是我的代码 InputStream in null BufferedImage bfi null File files new File DIR listFiles
  • 如何使用 HTML、CSS 使背景 div 内弯曲? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望我的部分背景看起来像最后的图片所示 我该如何使用 css 来做到这一点 bg width 400px height 200px
  • 当我将 android.permission.UPDATE_DEVICE_STATS 添加到我的 app.error 时发生

    我开发了一个应用程序 需要获取android permission UPDATE DEVICE STATS允许 但是 当我将此权限添加到我的应用程序 AndroidManifest xml 文件时 出现此错误 权限仅授予系统应用程序 我可以
  • 为什么 FFMPEG 总是生成很大的 WebM 文件?

    我正在尝试将我的电影编码为 WebM ffmpeg i input MOV codec v libvpx quality good cpu used 0 b v 10k qmin 10 qmax 42 maxrate 10k bufsize
  • Thymeleaf 装饰器不工作

    我创建了一个新的 Spring boot 项目 并希望将 Thymeleaf 与 LayoutDialect 结合使用 我的 pom xml 有以下依赖项
  • Ruby - 从字符串中删除模式

    我有一个字符串模式 作为示例 如下所示 WBA Skinny Joe vs Hefty Hal 我想从字符串中截断模式 WBA 并仅返回 Skinny Joe vs Hefty Hal 假设 WBA 位置是任意字母或数字的序列 后跟空格 破
  • 如何在性能损失很小的情况下包装 React 组件?

    我的团队使用 React材质用户界面 https material ui next com 图书馆 为了提供一致的 UI 模式并方便我们自定义 MaterialUI 的组件 我们将每个 MaterialUI 的组件包装在我们自己的组件中 例
  • Azure AD B2C - 如何实施自定义注册流程?

    这基本上是我之前问题的后续 https stackoverflow com a 44738654 2896495 https stackoverflow com a 44738654 2896495 我已经在我的 Web 应用程序 NET
  • 如何从外部分离 gdb 会话?

    我使用如下命令在后台启动 gdb 会话 gdb batch command tmp my automated breakpoints gdb p pid of proces gt gt tmp gdb results log The 最后让
  • 如何确定当前文化/区域设置是否使用 am/pm 还是 24 小时时间?

    我需要确定当前的区域性 区域设置是否设置为使用 am pm 时间或 24 小时时间 起初我以为我可以这样做 bool time24Hour Thread CurrentThread CurrentCulture DateTimeFormat
  • 使用 info.plist 存储多目标应用程序的特定于目标的值

    我有一个多目标 iPhone 应用程序 当前包含一个带有常量定义的头文件 这些常量定义在构建时有条件地包含 具体取决于正在构建的目标 但是 我想知道是否最好将此信息包含在构建的 info plist 中 因为这通常包含特定于目标的元 因此逻
  • 从后面的代码调用 javascript

    我有一个 c asp net 3 5 应用程序 我试图在某个事件发生后从代码后面打开一个窗口 我有这个 但它不起作用 并且 firebug 中没有错误 protected override void OnPreRender EventArg
  • 浏览器中跨时区的相同日期时间 - 在预订引擎上

    我正在寻找在任何浏览器中使用同一时间在国际上预订服务的最佳实践 解决方案 我不太明白其中的逻辑 也在这里挖掘 Use case 布鲁塞尔预订的用户假设有一家位于新加坡的理发服务 他一周后将飞往那里 他在浏览器日期时间控件中选择 14 00
  • Android:对Fragment使用Activity的默认动画

    我需要在片段替换中使用活动默认动画 但是使用android R anim我找不到它 我怎样才能找到它的名字 是否可以默认使用它 或者我必须手动创建动画才能使用它 预先非常感谢 在搜索了这个确切的问题后 我在 Google 论坛上找到了这个资
  • Liferay 7 无法设置全局会话属性

    我正在尝试设置会话属性 HTTP 或 Portlet 会话 以便我可以全局访问它 通过门户 但是 在获取 Session 属性时 它返回的是 null 而不是实际值 设置会话属性 Component immediate true prope
  • 调用 PowerMockito.mockStatic 时出现 AbstractMethodError

    我正在尝试使用 PowerMockito 来模拟静态调用 然而 当我尝试这样做时 PowerMockito mockStatic调用抛出一个 AbstractMethodError java lang AbstractMethodError