当前位置: 首页 > 面试题库 >

Mockito验证方法调用的顺序/顺序

赏开宇
2023-03-14
问题内容

有没有一种方法可以验证在Mockito中是否曾经methodOne调用methodTwoa?

public class ServiceClassA {
    public void methodOne(){}
 }

public class ServiceClassB {
    public void methodTwo(){}
 }
public class TestClass {
    public void method(){
        ServiceClassA serviceA = new ServiceClassA();
        ServiceClassB serviceB = new ServiceClassB();
        serviceA.methodOne();
        serviceB.methodTwo();
    }
}

问题答案:

InOrder
帮助您做到这一点。

ServiceClassA firstMock = mock(ServiceClassA.class);
ServiceClassB secondMock = mock(ServiceClassB.class);

Mockito.doNothing().when(firstMock).methodOne();   
Mockito.doNothing().when(secondMock).methodTwo();

//create inOrder object passing any mocks that need to be verified in order
InOrder inOrder = inOrder(firstMock, secondMock);

//following will make sure that firstMock was called before secondMock
inOrder.verify(firstMock).methodOne();
inOrder.verify(secondMock).methodTwo();


 类似资料:
  • 问题内容: 我有以下课程: 我的意图是验证当我调用doIt()时,将按该顺序调用metodOne(),methodTwo()和methodThree()方法。 我正在使用模拟嘲笑。有谁知道我如何测试这种情况? 问题答案: 不想成为这个人,但是:别测试这个。测试输出,副作用,结果-而不是执行。 如果您确实想确保顺序正确,请将这些方法提取到单独的类中并进行模拟。

  • 问题内容: 我有一个类(ClassA),可以在目录中获取文件。它在给定目录中扫描与正则表达式匹配的文件。对于每个匹配的文件,它将文件对象添加到列表中。处理目录后,它将文件列表传递给另一个类(ClassB)进行处理 我正在编写ClassA的单元测试,因此正在使用Mockito模拟ClassB,并将其注入ClassA。然后,我想在不同情况下验证传递给ClassB的列表的内容(即我的模拟) 我将代码剥离

  • 我做了一个自定义验证规则,它迭代一个包含键

  • 我试图验证在使用powerMockito 1.6.4测试服务方法时从未调用过静态方法 我按照这个答案做了同样的事情。 以下是我的代码。 我现在面临的问题是,调用real并给出nullPointerException。 我的假设是与一起工作,以便指定要验证的静态方法。 我错过什么了吗?

  • 我有一个object的数组,我希望循环访问该数组并为每个元素调用服务,但对于每个元素,我希望只有当当前调用成功时才调用下一个元素,除非阻塞其余的。 有没有在序列模式下调用可观察到的数据而不是并行的?

  • 问题内容: 我认为使用某种顺序才有意义。我想做的是在视图中包括该子句,以便该视图上的所有s都可以忽略它。但是,我担心该订单不一定会延续到,因为它没有指定订单。 是否存在一种情况,即视图指定的顺序不会反映在该视图上的select结果中(该视图中的order by子句除外)? 问题答案: 您不能指望没有显式子句的任何查询中的行顺序。如果查询有序视图,但没有包括子句,则如果它们的顺序正确,请感到惊喜,并