Mockito - verify方法是什么意思?

39

假设我有以下伪代码测试代码:

 //Let's import Mockito statically so that the code looks clearer
 import static org.mockito.Mockito.*;

 //mock creation
 List mockedList = mock(List.class);

 //using mock object
 mockedList.add("one");
 mockedList.clear();

 //what do these two verify methods do ?
 verify(mockedList).add("one");
 verify(mockedList).clear();

我不断看到测试通过的消息,但我不知道“verify”的意思是什么?它到底在验证什么?我知道我模拟了对“add”和“clear”函数的调用,但这两个“verify”函数具体做了什么呢?


1
你也可以使用 verify 来验证精确的调用次数 / 至少一次 / 从未发生过交互的模拟。 - Phat H. VU
3个回答

43

Mockito.verify(MockedObject).someMethodOnTheObject(someParametersToTheMethod);

这段代码用来验证你在模拟对象上调用的方法是否被确实调用了。如果它们没有被调用,或者使用了错误的参数,或者调用次数不正确,那么它们将会导致测试失败。


11

它断言该方法已被调用,并使用了这些参数。

注释掉:

//mockedList.add("one");

或者改变它的参数,测试将会失败。


1
好的,它显示 org.mockito.exceptions.verification.WantedButNotInvoked,谢谢 Weston。 - jumping_monkey

0

Mockito 中的 verify() 方法用于检查对象的方法是否被调用。它用于确保该方法是使用特定参数、调用次数等方式被调用的。

// Example:

// Create a mock object of a class 
MyClass mockClass = Mockito.mock(MyClass.class); 

// Call a method on the mock object 
mockClass.doSomething(); 

// Verify that the doSomething() method was called 
Mockito.verify(mockClass).doSomething();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接