在将java升级到17,将mockito升级到3.7.7,将junit4升级到junit5时,我遇到了以下错误,并且我正在使用这些powermock依赖项。

'org.powermock:powermock-module-junit4:2.0.7', 'org.powermock:powermock-core:2.0.7', 'org.powermock:powermock-api-mockito2:2.0.7'

org.mockito.exceptions.misusing.MissingMethodInvocationException: 
when() requires an argument which has to be 'a method call on a mock'.
For example:
    when(mock.getArticles()).thenReturn(articles);

Also, this error might show up because:
1. you stub either of: final/private/equals()/hashCode() methods.
   Those methods *cannot* be stubbed/verified.
   Mocking methods declared on non-public parent classes is not supported.
2. inside when() you don't call method on mock but on some other object.

    at app//com.expedia.risk.clm.web.exception.handler.RestExceptionMappingHandlerTest.shouldHandleMethodArgumentNotValid(RestExceptionMappingHandlerTest.java:118)
    at app//org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
    at app//org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
    at app//org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
    at app//org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
    at app//org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
    at app//org.mockito.internal.runners.DefaultInternalRunner$1$1.evaluate(DefaultInternalRunner.java:54)
    at app//org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
    at app//org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
    at app//org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
    at app//org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
    at app//org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
    at app//org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
    at app//org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
    at app//org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
    at app//org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
    at app//org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
    at app//org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
    at app//org.junit.runners.ParentRunner.run(ParentRunner.java:413)
    at app//org.mockito.internal.runners.DefaultInternalRunner$1.run(DefaultInternalRunner.java:99)
    at app//org.mockito.internal.runners.DefaultInternalRunner.run(DefaultInternalRunner.java:105)
    at app//org.mockito.internal.runners.StrictRunner.run(StrictRunner.java:40)

我的测试用例代码是这样的。请有人帮忙解决这个问题。

    @Test
    public void shouldHandleMethodArgumentNotValid() {
        final Set<InputError> testInputErrors = Collections.singleton(new InputError("test", "test"));
        final String expectedMessage = String.format("Invalid input. Details: %s", testInputErrors.toString());
        final MethodArgumentNotValidException testException = mock(MethodArgumentNotValidException.class);
        final BindingResult testBindingResult = mock(BindingResult.class);
        final List<ObjectError> testErrors = Collections.singletonList(new ObjectError("test", "test"));
        when(testException.getBindingResult()).thenReturn(testBindingResult);
        when(testBindingResult.getAllErrors()).thenReturn(testErrors);

        final ResponseEntity<ClmErrorResponse> actualResponse = handler.handleMethodArgumentNotValid(testException);

        assertThat(actualResponse.getStatusCode(), is(HttpStatus.BAD_REQUEST));
        final ClmErrorResponse errorResponse = actualResponse.getBody();
        assertThat(errorResponse.getCode(), is("39071"));
        assertThat(errorResponse.getMessage(), is(expectedMessage));
        assertThat(errorResponse.getInputErrors(), is(testInputErrors));
        verify(testException).getBindingResult();
        verify(testBindingResult).getAllErrors();
        verifyNoMoreInteractions(testBindingResult);
    }

尝试升级和降级mockito和powermock的版本。

错误:org.mockito.exceptions.missing.MissingMethodInvocationException的更多相关文章

  1. Android studio – Faild to resolve:com.android.support:design:26.0.1错误

    我有一个错误叫:我的androidstudio版本是3.0beta1.我的gradle文件如下:我想把“设计”放到我的项目中,但我不能这样做.我该怎么做?解决方法尝试改变和或者不要更改为bulidToolsversion更改依赖项

  2. Android单元测试的正确方法

    我知道这对所有Android开发者来说都是一个乏味的话题.但究竟什么是Android测试的正确方法?解决方法这个问题和我的回答,与Android没有任何关系,但这是一件好事.我略微修改了你的假设,但原理是一样的.>70%单元测试>20%集成测试>10%UI测试应该是70%吗?最后,检查您的UI是否按预期工作.你在这个级别显示什么并不重要.只要在用户未登录您的罚款时显示登录屏幕.这通常被称为TestPyramid,是你所描述的,只是减去了明显的比例.

  3. android – 使用Robolectric测试ActionBarActivity时出错

    我正在使用Robolectric来测试我的应用程序中的活动.该活动扩展了ActionBaractivity.当我测试活动时,我得到错误:“IllegalStateException:你需要在这个活动中使用Theme.AppCompat主题(或后代).”我的测试环境是:AndroidStudio0.8.6,Robolectric2.4-SNAPSHOT,support-v4库版本20.0,appco

  4. android.test.AndroidTestCase中的方法setUp没有被模拟

    notmocked’错误,并建议将以下内容放入build.gradle:这可以在从命令行启动时运行测试但是当我使用rightclick从AndroidStudio运行测试类时–>跑.这样,我又得到了同样的错误:关于如何解决这个问题的任何想法?

  5. Android Studio中的Gradle Error:找不到ID为’com.android.library’的插件

    当我尝试在AndroidStudio中构建Android库项目时,我收到以下Gradle错误:我对Gradle很新,这对我来说很困惑.为什么会这样?build.gradle文件如下:解决方法您的问题是您使用的顶级文件无法使用此类插件.在AS中你有这样的结构:在您的顶级文件中,您可以使用:在lib/build.gradle中,您可以使用问题中发布的代码:最后在您的settings.gradle中你也可以参考thisquestion.

  6. android – Espresso – 点击对话框的按钮

    我想测试Android6的权限,但我找不到使用Espresso点击“允许”按钮的方法.有没有办法做到这一点?

  7. android – 尝试单击导航按钮时Espresso AmbiguousViewMatcherException

    //这里的布局//测试输出解决方法这不是Espresso中的错误.视图层次结构清楚地显示了具有相同ID的两个视图.这可能是由于视图位于ViewPager内部,而ViewPager是一个AdapterView.因此可以预期多个实例.要解决此问题,请在匹配视图时更具体.仅仅通过ID无济于事.由于主页按钮的其他ImageView不可见,因为它的父级是GONE,您可以简单地匹配:

  8. Android gradle build:在APK LICENSE.txt打包期间重复文件

    我正在尝试使用以下gradle构建文件构建Android测试运行时我收到以下错误:Error:duplicatefilesduringpackagingofAPK…Pathinarchive:LICENSE.txtOrigin1:….gradle/caches/artifacts-24/filestore/junit/junit/4.11/jar/4e031bb61df09069aeb2bffb4

  9. android – 无法解决:编译’com.google.firebase:firebase-config:9.2.1′

    我在Gradle文件中添加Firebse远程配置SDK时出现以下错误它将显示错误错误:(25,13)无法解析:com.google.firebase:firebase-config:9.2.1在ProjectStructure对话框的FileShow中显示Gradle文件:错误Image解决方法@RiyazAhamed谢谢.解决方案是从sdk经理更新“GooglePlay服务”和“GoogleRe

  10. android-studio – 运行Android检测测试时出现“未找到测试”错误

    我是测试的初学者.我在androidstudio中为登录活动创建了一个简单的测试用例.但我得到了一个错误,我无法解决它.这是我的测试代码.帮助将非常感激.这是我的错误:这是我的gradle文件:解决方法您忘记将AndroidJUnitRunner设置为默认的测试工具运行器.https://developer.android.com/topic/libraries/testing-support-l

随机推荐

  1. 如何扩展ATmega324PB微控制器的以下宏寄存器?

    我目前正在学习嵌入式,我有以下练习:展开以下宏寄存器:如果有人解决了这个问题,我将不胜感激,以便将来参考

  2. Python将ONNX运行时设置为返回张量而不是numpy数组

    在python中,我正在加载预定义的模型:然后我加载一些数据并运行它:到目前为止,它仍在正常工作,但我希望它默认返回Tensor列表,而不是numpy数组。我对ONNX和PyTorch都是新手,我觉得这是我在这里缺少的基本内容。这将使转换中的一些开销相同。

  3. 在macOS上的终端中使用Shell查找文件中的单词

    我有一个文本文件,其中有一行:我需要找到ID并将其提取到变量中。我想出了一个RexEx模式:但它似乎对我尝试过的任何东西都不起作用:grep、sed——不管怎样。我的一个尝试是:我为这样一个看似愚蠢的问题感到抱歉,但我在互联网上找不到任何东西:我在SO和SE上读了几十个类似的问题,并在谷歌上搜索了几个教程,但仍然无法找到答案。欢迎提供任何指导!

  4. react-chartjs-2甜甜圈图中只有标题未更新

    我正在使用react-chartjs-2在我的网站中实现甜甜圈图。下面是我用来呈现图表的代码。我将甜甜圈图的详细信息从父组件传递到子组件,所有道具都正确传递。当我在beforeDraw函数外部记录props.title时,它会记录正确的值,但当我在beforeDraw函数内部记录props.title时,它将记录标题的前一个值,从而呈现标题的前值。我在这里做错了什么?

  5. 如何在tkinter中使用Python生成器函数?

    生成器函数承诺使某些代码更易于编写。但我并不总是知道如何使用它们。假设我有一个斐波那契生成器函数fib(),我想要一个显示第一个结果的tkinter应用程序。当我点击“下一步”按钮时,它会显示第二个数字,依此类推。我如何构建应用程序来实现这一点?我可能需要在线程中运行生成器。但如何将其连接回GUI?

  6. 如何为每次提交将存储库历史记录拆分为一行?

    我正在尝试获取存储库的历史记录,但结果仅以单行文本的形式返回给我。

  7. 尝试在颤振项目上初始化Firebase时出错

    当尝试在我的颤振项目上初始化firebase时,我收到了这个错误有人知道我能做什么吗?应用程序分级Gradle插件Gradle项目颤振相关性我已经将firebase设置为Google文档已经在另一个模拟器上尝试过,已经尝试过创建一个全新的模拟器,已经在不同的设备上尝试过了,已经尝试了特定版本的firebase,已经尝试添加但没有任何效果,已经在youtube上看到了关于它的每一个视频,该应用程序在android和iOS两个平台上都抛出了这个错误

  8. 在unix中基于当前日期添加新列

    我试图在unix中基于时间戳列在最后一个单元格中添加一个状态列。我不确定如何继续。

  9. 麦克斯·蒙特利。我一直得到UncaughtReferenceError:当我在终端中写入node-v时,节点未定义

    如果这是您应该知道的,请确认:我已将所有shell更改为默认为zsh。当我在终端中写入node-v时,我一直收到“UncaughtReferenceError:nodeisnotdefined”。但它显示节点已安装。我是个新手,在这方面经验不足。

  10. 如何在前端单击按钮时调用后端中的函数?

    那么如何在后端添加一个新的端点,点击按钮调用这个函数。

返回
顶部