You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何验证PowerMockito已打桩的内部调用静态方法是否被至少调用一次

PowerMockito验证静态方法调用次数实现方案

前置配置要求

首先确保你的测试类已经添加了以下两个必填注解,否则静态方法验证逻辑无法生效:

@RunWith(PowerMockRunner.class)
@PrepareForTest(MyClass.class)
public class MyClassTest {
    // 测试方法写在这里
}

验证逻辑实现

你只需要在MyClass.methodA()执行之后,添加如下验证代码即可:

// 验证MyClass的静态方法至少被调用1次
PowerMockito.verifyStatic(MyClass.class, Mockito.atLeastOnce());
// 标记要验证的目标方法,参数可以用Mockito的匹配器灵活匹配
MyClass.methodB(Mockito.anyInt(), Mockito.any(ArrayList.class));

完整测试用例示例

@Test
public void testMethodA() {
    // 小提示:这里methodB第一个参数是int基本类型,建议把Integer.class替换为int.class避免类型匹配失败
    PowerMockito.stub(PowerMockito.method(MyClass.class, "methodB", int.class, ArrayList.class)).toReturn(null);
    MyClass.methodA();

    // 验证逻辑
    PowerMockito.verifyStatic(MyClass.class, Mockito.atLeastOnce());
    MyClass.methodB(Mockito.anyInt(), Mockito.any(ArrayList.class));
}

说明

  • 如果需要验证固定调用次数,把Mockito.atLeastOnce()替换为Mockito.times(期望次数)即可
  • 如果你需要精确验证调用时传入的参数值,把参数匹配器Mockito.anyInt()、Mockito.any(ArrayList.class)替换为你预期的具体参数值即可

内容的提问来源于stack exchange,提问作者Anurag

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 11:54:06