【问题标题】:Unable to mock enum static method with null parameter无法使用空参数模拟枚举静态方法
【发布时间】:2021-12-20 09:46:09
【问题描述】:

我正在尝试模拟枚举的静态方法,该方法具有如下所示的空值

 try (MockedStatic<SomEnum> e = Mockito.mockStatic(SomEnum.class)) {
            e.when(() -> SomEnum.methodWhichAcceptingNullParam(any())).thenReturn(somValue);
        }

这里 any() 不起作用...我不确定我是否在方法内部传递了 null 参数

methodWhichAcceptingNullParam

我已经尝试过 any 和 isNull。事实是 SomEnum.methodWhichAcceptingNullParam 总是被调用,但它不应该因为我已经提供了一个模拟值

有什么帮助吗?

【问题讨论】:

    标签: java mockito junit5


    【解决方案1】:

    您的代码是使用空对象还是非空对象调用的?缺少此信息(至少对我而言)。

    假设你调用的是 SomeEnum.methodWhichAcceptingNullParam(null),那么你需要使用

    ArgumentMatchers.isNull()

    而不是 any()。

    【讨论】:

    • 我已经尝试过 any 和 isNull。事实是 SomEnum.methodWhichAcceptingNullParam 总是被调用,但它不应该因为我已经提供了一个模拟值
    • 您是在大括号内调用实际方法吗?模拟仅在其中有效。附言您应该为您的问题添加更多上下文或发布单元测试场景的大部分内容。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多