设置 Powermockito 进行静态模拟

2024-03-11

我想利用 Powermock 和 Mockito 来模拟一些静态方法调用。我已遵循 SO 以及 PowerMock 的说明和示例入门 https://code.google.com/p/powermock/wiki/GettingStarted and 模拟静态 https://code.google.com/p/powermock/wiki/MockStatic尽我所能,但我还没有完成mockStatic() 调用。

当我从测试类中调用 mockStatic(foo.class) 时,出现异常:

java.lang.NoClassDefFoundError: org/Mockito/mock/MockName
at org.powermock.api.mockito.PowerMockito.mockStatic(PowerMockito.java:70)
at ...my test class method call...

我确信这是一个设置问题,因为我发现用于设置此问题的术语非常令人困惑。我确实从 PowerMock 中获取了 Mockito Zip下载 https://code.google.com/p/powermock/downloads/list。在 Eclipse (3.5.2) 中,我打开项目属性并将所有 Jars 添加到构建路径中。我还尝试将整个解压的 powermockito 文件夹添加到我的环境变量类路径中,然后在不起作用时仅添加 powermockito jar 。

根据 powermock 说明,我在测试类的类级别也有这些注释:

@RunWith(PowerMockRunner.class)
@PrepareForTest(ApplicationContextLoader.class)

还有这些 powermock 特定的导入:

import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;

对于那些以前使用过 PowerMockito 的人来说,即使只是指向正确方向的指针或需要检查的内容也会非常有帮助。我正在努力了解我的设置与我所看到的使用相同语法的帖子有何不同(据我所知)。


可能是Powermock和Mockito的版本不兼容。解决这个问题就不再是问题了。

Mockito                     PowerMock
1.10.8+                     1.6.2+
1.9.5-rc1 - 1.9.5           1.5.0 - 1.5.6
1.9.0-rc1 & 1.9.0           1.4.10 - 1.4.12
1.8.5                       1.3.9 to 1.4.9
1.8.4                       1.3.7 & 1.3.8 
1.8.3                       1.3.6
1.8.1 & 1.8.2               1.3.5
1.8                         1.3
1.7                         1.2.5

See: https://github.com/powermock/powermock/wiki/Mockito#supported-versions https://github.com/powermock/powermock/wiki/Mockito#supported-versions

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

设置 Powermockito 进行静态模拟 的相关文章

随机推荐

  • 当鼠标悬停在 UWP 按钮上时,按钮会改变颜色

    我正在尝试创建一个 UWP 按钮 当鼠标指针悬停在其上时 该按钮将更改背景颜色 我遇到的麻烦是 默认情况下 它似乎已经做到了这一点 但不是我想要的颜色 当我将鼠标悬停在红色按钮上时 它会变成默认的灰色 然后当我将鼠标移开时又会变回灰色 我用
  • 如何在不使用鼠标的情况下执行虚拟鼠标单击C# [重复]

    这个问题在这里已经有答案了 我想在 Windows 应用程序中执行单击 而不使用真正的鼠标 这样我可以将其最小化 很像机器人的行为 我该怎么做 我认为你正在寻找的功能是PostMessage DllImport user32 dll Set
  • GitLab Runner - 如何一次只允许一个管道运行

    我是 GitLab 新手 面临一个问题 如果我在同一个 gitlab runner 上同时触发两个管道 它们都会并行运行并导致失败 我想要的是将运行限制为一次只运行一个管道 而其他管道则在队列中运行 我已经设置了concurrent 1在
  • 无法向 Google App 脚本授予授权或许可

    为什么我无法向我使用同一 Google 帐户创建的 Google Apps 脚本授予许可 授权 看来 Google 不相信自己能够将自己的 Google Apps 脚本与自己的电子表格一起使用 这是破坏一切的代码行 如果此行不存在 则不会请
  • Android 应用程序将数据发送到 PHP 脚本 - 预期失败

    我尝试开发一个需要将数据发送到 MySql 数据库的应用程序 为了实现它 我创建了一个 httppost 如下所示 public void postData try Create a new HttpClient and Post Head
  • 如何将 C# 程序集资源嵌入到同一个程序集中?

    我已将不同文化的资源添加到我的班级图书馆项目中 构建时 会为每种区域性创建单独的文件夹 每个文件夹中都有一个程序集 有没有办法将所有资源嵌入类库程序集中 而不是为每种文化提供额外的程序集 该类库最终会在另一个项目中使用 因此对于这些单独的文
  • ASP.NET 虚拟路径在哪里解析波形符“~”?

    ASP NET 虚拟路径在哪里解析波浪号 在链接中 例如 它是否重定向 或者RedirectToAction在 ASP NET MVC 中 它从这里获取 VirtualPathUtility ToAbsolute contentPath h
  • 应用程序中所有函数调用的列表

    我们如何列出应用程序中调用的所有函数 我尝试使用 GDB 但它的回溯列表仅到主函数调用 我需要更深入的列表 即主函数调用的所有函数以及从这些被调用函数调用的函数的列表 等等 有没有办法在 gdb 中得到这个 或者你能给我一些关于如何获得这个
  • 基于 socketserver 的 Python 3 服务器关闭挂起

    我正在使用 Python 3 中的线程 SocketServer 开发一个 简单 服务器 我在实施时遇到了很多麻烦shutdown为了这 我在互联网上找到的下面的代码最初可以工作 但在通过 telnet 从客户端发送一些命令后停止工作 一些
  • Hibernate、Spring、@Transactional - 用 try/catch 包围?

    我正在使用 Spring 3 和 Hibernate 3 6 开发 Web 应用程序 我有一些问题要问 Transactional注释和代码结构 gt 当我使用 Transactional 使用 Spring 进行事务管理 我是否必须围绕
  • 计算两行之间的时间差

    我有一个包含以下内容的表 DataDate Value 2010 03 01 08 31 32 000 100 2010 03 01 08 31 40 000 110 2010 03 01 08 31 42 000 95 2010 03 0
  • Android 上的 Http 连接超时不起作用[重复]

    这个问题在这里已经有答案了 我正在编写一个连接到网络服务的应用程序 如果无法获得连接 我不希望它等待太久 因此我设置了httpparams的connectionTimeout 但似乎并没有任何效果 为了进行测试 我暂时关闭了 WLAN 应用
  • 尝试在 Android 手机上使用 RenderScript 支持库模糊图像时出错

    我正在尝试模糊我的图像 并使用 RenderScript 将其模糊显示在relativelayout的背景上 该应用程序可以在模拟器中运行 但我在手机中的应用程序不断崩溃并出现以下错误 08 05 22 21 36 543 E Render
  • 随机访问容器不适合内存?

    我有一个对象数组 例如图像 它太大而无法放入内存 例如 40GB 但我的代码需要能够在运行时随机访问这些对象 做这个的最好方式是什么 当然 从我的代码的角度来看 如果某些数据位于磁盘上或临时存储在内存中 那应该没有关系 它应该具有透明的访问
  • 考虑夏令时,将本地时间转换为 UTC 时间,反之亦然

    我知道如何将本地时间转换为 UTC 时间 反之亦然 但我在执行此操作时对夏令时 DST 处理感到非常困惑 那么任何人都可以回答以下问题 1 时区之间转换时 java内部是否处理DST 2 时区转换时需要做什么 3 有什么好的文章可以更清楚地
  • 任务应用执行失败:Android Studio 3.0 Beta 2 上的transformClassesWithDesugarForDebug 错误

    我已将我的项目从 Android Studio 2 3 3 迁移到 Android Studio 3 0 Beta 2 现在我的项目无法运行 我在控制台中收到以下消息 错误 任务 app transformClassesWithDesuga
  • android:使用Intent.ACTION_BOOT_COMPLETED还是...?

    在 AndroidManifest 文件中 我想在用户重新启动设备时捕获 BOOT COMPLETED 事件 我正在添加此权限 使用权限 android name android permission RECEIVE BOOT COMPLE
  • HTML 特殊字符在 Chrome 和 Mozilla 中转换为问号

    HTML 特殊字符 例如 正在转换为 在 Chrome 和 Mozilla 中 它在 IE 中运行良好 当我在网站的搜索框中使用特殊字符 时 Chrome Mozilla 和 IE 的 url 有所不同 搜索查询中的特殊字符转换为 E1 在
  • 在 Angular 2/4 中使用 jQuery 的最简单、最短的方法

    如何将 jQuery 与 Angular 结合使用 https stackoverflow com questions 30623825 how to use jquery with angular 如何将 jQuery 导入 Angula
  • 设置 Powermockito 进行静态模拟

    我想利用 Powermock 和 Mockito 来模拟一些静态方法调用 我已遵循 SO 以及 PowerMock 的说明和示例入门 https code google com p powermock wiki GettingStarted