Joh*_*ohn 3 java junit mockito
我正在尝试验证 InOrder 类中存在的静态方法。下面是具有一些静态方法的示例类
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(...);
}
}
Run Code Online (Sandbox Code Playgroud)
我的测试看起来像这样
@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(...));
}
}
Run Code Online (Sandbox Code Playgroud)
有没有办法对这三个静态方法进行InOrder验证?由于 Mockito.inOrder 仅接受模拟类型,而不接受 MockedStatic 类型。
现在我正在 Mockito 中寻找不涉及 PowerMockito 的答案。
对于那些像我一样在 Google 上发现这个问题作为第一个结果的人,现在 Mockito 支持这个。使用你的例子:
@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(...));
}
}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅Mockito github 问题
| 归档时间: |
|
| 查看次数: |
742 次 |
| 最近记录: |