首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >莫奇托静态方法验证InOrder

莫奇托静态方法验证InOrder
EN

Stack Overflow用户
提问于 2020-11-21 19:28:01
回答 1查看 376关注 0票数 3

我正在尝试验证类InOrder中的静态方法。下面是包含一些静态方法的示例类

代码语言:javascript
复制
public class SampleClass {
  public static void staticMethod1(Param1 param)
  {
     //doSomething
  }
  public static void staticMethod2(Param2 param)
  {
     //doSomething
  }
  public static void staticMethod2(Param3 param)
  {
     //doSomething
  }
}

public class parent{
  public void method() {
    SampleClass.staticMethod1(...);
    SampleClass.staticMethod2(...);
    SampleClass.staticMethod3(...);
  }
}

我的测试看起来像这样

代码语言:javascript
复制
@Test
public void test(){
  try (MockedStatic<SamplClass > mockSamplClass = mockStatic(SamplClass .class, Answers.CALLS_REAL_METHODS))
  {
    //doStuff
    mockSampleClass.verify(()->SampleClass.staticMethod1(...));
    mockSampleClass.verify(()->SampleClass.staticMethod2(...));
    mockSampleClass.verify(()->SampleClass.staticMethod3(...));
  }
}

对这三种静态方法是否有执行InOrder验证的方法?因为Mockito.inOrder只接受模拟类型,而不接受MockedStatic类型。

现在,我正在寻找莫奇托的答案,不涉及PowerMockito。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-11 11:45:34

对于那些像我一样在谷歌上发现这个问题的第一个结果的人,现在Mockito支持这一点。使用您的例子:

代码语言:javascript
复制
@Test
public void test(){
  try (MockedStatic<SamplClass > mockSamplClass = mockStatic(SamplClass.class, Answers.CALLS_REAL_METHODS)) {
    //doStuff
    InOrder inOrder = Mockito.inOrder(SamplClass.class);
    inOrder.verify(mockSampleClass, ()-> SampleClass.staticMethod1(...));
    inOrder.verify(mockSampleClass, ()-> SampleClass.staticMethod2(...));
    inOrder.verify(mockSampleClass, ()-> SampleClass.staticMethod3(...));
  }
}

有关更多信息,请参见Mockito github问题

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64947196

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档