We can use org.mockito.Mockito.verify(T mock) method to ensure whether a mock() method was called with required arguments or not. In other words, we can say that Mockito.verify(T mock) is used to confirm that specific interactions took place.
Let’s try to understand the above concept using a demo project
pom.xml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.kkjavatutorials</groupId> <artifactId>MockitoVerifyingMethodCallsExample</artifactId> <version>0.0.1-SNAPSHOT</version> <properties> <maven.compiler.target>8</maven.compiler.target> <maven.compiler.source>8</maven.compiler.source> </properties> <dependencies> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-junit-jupiter</artifactId> <version>3.5.7</version> <scope>test</scope> </dependency> </dependencies> </project> |
MyUtils.java
1 2 3 4 5 6 7 |
package com.kkjavatutorials; public interface MyUtils { public abstract int add(int n1,int n2); public abstract int multiply(int n1,int n2); } |
MyUtilsTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
package com.kkjavatutorials; import org.junit.jupiter.api.Test; import org.mockito.ArgumentCaptor; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.mockito.Mockito.*; import java.awt.List; public class MyUtilsTest { @Test void verify1Test() { MyUtils mock = mock(MyUtils.class); mock.add(10, 30); verify(mock).add(10, 30); verify(mock,times(1)).add(10, 30); } @Test void verify2Test() { MyUtils mock = mock(MyUtils.class); mock.add(10, 30); mock.add(10, 30); mock.add(10, 30); mock.add(10, 30); mock.add(10, 30); verify(mock,times(5)).add(10, 30); verify(mock,atLeast(2)).add(10, 30); verify(mock,atLeast(5)).add(10, 30); verify(mock,atLeastOnce()).add(10, 30); } @Test void verify3Test() { MyUtils mock1 = mock(MyUtils.class); MyUtils mock2 = mock(MyUtils.class); //mock1.add(10, 30); verifyNoInteractions(mock1,mock2); } @Test void verify4Test() { List mock = mock(List.class); mock.add("KK"); ArgumentCaptor<String> argumentCaptor = ArgumentCaptor.forClass(String.class); verify(mock).add(argumentCaptor.capture()); assertEquals("KK", argumentCaptor.getValue()); } } |
The Output of the above project:
You May Also Like:
What is Mocking?
Why Need for mocking?
What are the Benefits of Mockito?
How to mock interface using Mockito example?
Mockito and JUnit Integration Using Maven Example
@Mock and @Spy Mockito Annotations With Example
@InjectMocks Annotation in Mockito with Example
@Captor Annotation in Mockito with Example
Adding behavior to mocked object in Mockito
Mocking Void Methods with Mockito
Mocking Exception Throwing using Mockito
Mockito’s mock Overloaded Methods
That’s all about Mockito – Verifying Method Calls
If you have any feedback or suggestion please feel free to drop in below comment box.