Java Mockito静态方法验证顺序

Java Mockito静态方法验证顺序,java,junit,mockito,Java,Junit,Mockito,我试图验证类中存在的静态方法的顺序。 下面是具有几个静态方法的示例类 public class SampleClass { public static void staticMethod1(Param1 param) { //doSomething } public static void staticMethod2(Param2 param) { //doSomething } public static void staticMethod2(P

我试图验证类中存在的静态方法的顺序。 下面是具有几个静态方法的示例类

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(...);
  }
}
我的测试是这样的

@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(...));
  }
}
@测试
公开无效测试(){
try(MockedStatic mockSamplClass=mockStatic(SamplClass.class,Answers.CALLS\u REAL\u方法))
{
//多斯塔夫
mockSampleClass.verify(()->SampleClass.staticMethod1(…);
mockSampleClass.verify(()->SampleClass.staticMethod2(…);
mockSampleClass.verify(()->SampleClass.staticMethod3(…);
}
}
有没有办法对这三种静态方法执行顺序验证? 因为Mockito.inoder只接受mock类型,而不接受MockedStatic类型


现在,我正在Mockito中寻找不涉及PowerMockito的答案。

您需要修复您的设计。这些“静态方法”是做什么的?这闻起来像副作用,所以直接测试这些副作用。如果你不能,这表明副作用不应该隐藏在静态方法中。这看起来也不是一个好的测试用例。是的,这就是问题所在,这些都是遗留代码,无法更新代码/设计。这些方法用于关闭与sql相关的对象。目前我正在尝试从jmockit迁移到mockito。在jmockit下,这些是在VerificationNorder块下声明的。您需要修复您的设计。这些“静态方法”是做什么的?这闻起来像副作用,所以直接测试这些副作用。如果你不能,这表明副作用不应该隐藏在静态方法中。这看起来也不是一个好的测试用例。是的,这就是问题所在,这些都是遗留代码,无法更新代码/设计。这些方法用于关闭与sql相关的对象。目前我正在尝试从jmockit迁移到mockito。在jmockit下,这些是在VerificationNorder块下声明的。