Mockito 创建模拟对象时抛出 NullPointer

2024-02-03

我有一个集成测试,其中一些设置是使用 Guice 完成的。我正在使用 Mockito 来模拟一些依赖项。到目前为止,这对我来说效果很好。我需要使用 PowerMock 来实现其他一些依赖项。现在 Mockito 正在抛出一个NullPointerException加载它自己的类之一时:

java.lang.ExceptionInInitializerError
    at org.mockito.internal.exceptions.stacktrace.ConditionalStackTraceFilter.<init>(ConditionalStackTraceFilter.java:17)
    at org.mockito.exceptions.base.MockitoException.filterStackTrace(MockitoException.java:30)
    at org.mockito.exceptions.base.MockitoException.<init>(MockitoException.java:19)
    at org.mockito.exceptions.misusing.MockitoConfigurationException.<init>(MockitoConfigurationException.java:18)
    at org.mockito.internal.configuration.ClassPathLoader.loadImplementations(ClassPathLoader.java:145)
    at org.mockito.internal.configuration.ClassPathLoader.findPluginImplementation(ClassPathLoader.java:110)
    at org.mockito.internal.configuration.ClassPathLoader.findPlatformMockMaker(ClassPathLoader.java:106)
    at org.mockito.internal.configuration.ClassPathLoader.<clinit>(ClassPathLoader.java:59)
    at org.mockito.internal.util.MockUtil.<clinit>(MockUtil.java:21)
    at org.mockito.internal.MockitoCore.<init>(MockitoCore.java:40)
    at org.mockito.Mockito.<clinit>(Mockito.java:932)
    <snip my test code and some Guice>
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at org.junit.internal.runners.ClassRoadie.runBefores(ClassRoadie.java:56)
    at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:43)
    at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:120)
    at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:101)
    at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:53)
    at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:53)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

Caused by: java.lang.NullPointerException
    at org.mockito.internal.exceptions.stacktrace.StackTraceFilter.<clinit>(StackTraceFilter.java:21)
    ... 39 more

(精简的)代码:

@PrepareForTest(MyModule.class)
@RunWith(PowerMockRunner.class)
public class MyTest {
    @BeforeClass
    public static void setUp() {
        Injector injector = Guice.createInjector(...);
        MyModule module = PowerMockito.mock(MyModule.class);
        injector = injector.createChildInjector(...); // Fails in another Mockito.mock() call before it gets to use the mocked Module.
    }
}

我在 Mockito 中找不到任何关于此已知错误的信息。有人对如何解决这个问题有建议吗?


Check 这个问题 https://code.google.com/p/powermock/issues/detail?id=414#c3

当在实例化时创建模拟时,似乎会发生这种情况。

如果我在 @Before 方法中设置模拟,问题就会消失。

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

Mockito 创建模拟对象时抛出 NullPointer 的相关文章

随机推荐

  • 如何在 beforeunload 显示自己的模式对话框之前显示模式对话框?

    我确实明白不可能更换beforeunload带有自定义对话框的对话框 如果我们需要向用户设置自定义消息 则必须在 beforeunload 处理程序中返回一个字符串 Custom message here set by returning
  • (iOS) 如何检查 iPhone 已配对的蓝牙设备?

    我想使用 CoreBluetooth 因为我的应用程序必须符合 App Store 的资格 来检查所有当前配对和连接的蓝牙设备 这应该不需要任何蓝牙扫描 对吧 我只是想看看这个系统与什么配对 如果我做不到 扫描是第二个选择 我正在尝试的不起
  • dockerd 命令中开关 --containerd 的用途是什么?

    如果我跑systemctl cat docker service检查 docker service 的单元文件 ExecStart usr bin dockerd H fd containerd run containerd contain
  • 如何在不出现“进程已退出”异常的情况下终止进程?

    I use Process Kill 杀死一个进程 像这样 if process WaitForExit 5000 process Kill 有时进程会在两行之间退出 因此控制权会进入内部if进而Kill将产生异常 System Inval
  • SOMAXCONN在C套接字编程中意味着什么?

    我对C Linux Ubuntu 套接字编程中的somaxconn一无所知 我搜索了几个网站 但所有这些都对我没有多大帮助 listen sockfd SOMAXCONN 这是否意味着同时收听最大数量 连接的套接字 include
  • 从 JavaFX 打开外部应用程序

    我找到了一种使用 HostServices 在默认浏览器上打开链接的方法 getHostServices showDocument http www google com 有什么方法可以在默认媒体播放器中打开媒体吗 有什么办法可以启动特定的
  • 如何从方法返回 IEnumerable

    我正在为一个示例项目开发接口 我希望它尽可能通用 所以我创建了一个如下所示的接口 public interface IUserFactory IEnumerable
  • ASP.NET Identity 3.0 上的 IIdentityMessageService 的等效项是什么?

    在 ASP NET Identity 2 X 上 我们可以通过以下方式配置通知基础结构IIdentityMessageService接口可在Microsoft AspNet Identity Core库 未升级到版本 3 0 在 ASP N
  • mat-card-avatar 在初始页面加载时未正确呈现

    我有一个简单的垫卡头像布局 它在我的应用程序的许多页面的标题中显示圆形图标 我发现在许多页面上 但不是所有页面 即使使用相同类型的代码 都没有渲染mat card avatar正确地在初始渲染通道上 我正在使用这段代码 h1 div cla
  • .Net 微框架的 Json 库

    我正在使用 Net Microframework 运行一个轻型网络服务器 我想知道哪些库主要适用于 JSON 序列化 但也可能适用于反序列化 我发现很多 JSON 库的问题是它们使用 MF 中不可用的奇特 Net 功能 并且比我需要的更复杂
  • 使用 LINQ 确定序列不包含元素[重复]

    这个问题在这里已经有答案了 可能的重复 LINQ 最大还是默认 https stackoverflow com questions 341264 linq max or default 我有一些 LINQ 需要过滤DateTime vars
  • 删除行后留下的 FILESTREAM 文件

    我已经在我的 SQL 2008 服务器上成功设置了 FILESTREAM 但是我注意到 即使我删除了包含 FILESTREAM 数据的行 物理数据文件似乎也没有被删除 我所说的物理文件是指 SQLServer 托管目录中以唯一标识符作为文件
  • 将 PIL.Image 转换为 skimage

    我的项目中有 2 个模块 第一个模块以字节格式处理图像 第二个模块需要 skimage 对象 我需要将它们结合起来 我有这个代码 import io from PIL import Image import skimage io area
  • KnockoutJS css 绑定 != true

    我的视图模型正在返回truevalue 我正在尝试让我的模板相应地添加 CSS 问题是 我找不到 a true 的语法 我有这样的事情 div div 我想会说 如果选中 true 则应用 lw touched 如果选中 false 则应用
  • 行边框颜色

    我想设置边框 tr 至黄色 我可以设置边界 td 但不知道如何设置行边框 tr 这个怎么做 Thanks 这个例子 http jsfiddle net yahavbr a5TyU 在 IE8 Chrome 9 和 Firefox 3 6 上
  • Rubaxa Sortable 如何获取项目数组

    我知道这很明显 但我无法弄清楚 我正在使用 Rubaxa sortable 并且希望在添加 删除项目或对列表进行排序时使用 ajax 更新我的数据库 var editableList Sortable create document get
  • Prolog-映射(关联数组)

    我正在学习序言 想知道是否有人指导我如何做这个问题 这是这个领域的许多问题中的第一个 知道如何做这个问题将真正帮助我进步 先感谢您 使用 Prolog 定义一个谓词 mapof K M V 这样 当 K 实例化为键 M 实例化为映射而调用时
  • 使用 fetch API 时在 AJAX 调用期间显示微调器

    在我的项目中 我正在迁移到 React 因此不加载 JQuery 由于我不再使用 JQuery 因此对于 AJAX 调用我使用 fetch 使用 JQuery 我可以挂钩 AJAX 调用的开始和结束 因此可以非常轻松地将光标更改为微调器 我
  • 如何在 Design Automation API 中创建数据转换活动?

    我正在制作一个 Web 服务原型 以使用 Autodesk Forge 中的 Design Automation API 转换数据 我的方法是调用一个执行脚本的活动来导入目标数据文件 例如STEP IGES格式 例如 我创建了一个将 STE
  • Mockito 创建模拟对象时抛出 NullPointer

    我有一个集成测试 其中一些设置是使用 Guice 完成的 我正在使用 Mockito 来模拟一些依赖项 到目前为止 这对我来说效果很好 我需要使用 PowerMock 来实现其他一些依赖项 现在 Mockito 正在抛出一个NullPoin