假设我有以下类似伪的测试代码:
//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();
我一直显示测试通过,但我不知道验证是什么意思? 它到底在验证什么?我知道我模拟了一个呼叫来添加和清除,但是两个验证呼叫有什么作用?
Mockito.verify(MockedObject).someMethodOnTheObject(someParametersToTheMethod);
验证是否确实调用了对模拟对象调用的方法。如果未调用它们,或者使用错误的参数调用它们,或者调用错误的次数,则它们将无法通过测试。
它断言调用了该方法,并带有这些参数。
注释掉:
//mockedList.add("one");
或者更改其参数,测试将失败。
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();