In this tutorial we shall show users the usage of
doNothing method. This method is basically resides inside the Mockito framework and is not a part of the JUnit.
Many developers thought about the ways to test methods but do nothing about this. They might want to run the method only for the purpose of some other things that are related to that method. But directly there is no test required on that method itself.
doNothing()for setting void methods to do nothing.
Note: Beware that void methods on mocks do nothing by default.
There are rare situations when
doNothing() comes handy. Sometimes is used in
void return methods or to a method that does not have side effects, or is not related to the unit testing you are doing.
This is how definition of the
doNothing() method looks like.
public static Stubber doNothing()
2. Project Dependencies
There are common things while we need to run or test the
3. JUnit doNothing Example
Let’s take a small set of examples that use the
doNothing() method. Examples below are taken from the Mockito framework. We need to add the following configurations to the project if we are using Maven.
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> </dependency> <dependency> <groupId>org.mockito</groupId> <artifactId>mockito-core</artifactId> <version>2.7.12</version> </dependency>
Stubbing consecutive calls on a void method:
... doNothing().doThrow(new RuntimeException()).when(mock).someVoidMethod(); //does nothing the first time: mock.someVoidMethod(); //throws RuntimeException the next time: mock.someVoidMethod(); ...
Here calling the
someVoidMethod() first it will do nothing. But on the consecutive call it will throw an error. When you spy real objects and you want the void method to do nothing:
... List list = new LinkedList(); List spy = spy(list); //let's make clear() do nothing doNothing().when(spy).clear(); spy.add("one"); //clear() does nothing, so the list still contains "one" spy.clear(); ...
In this example we are simply spying on the real object and we are doing some changes on that. But when we use
doNothing() method, the real object will not change.
It is clear from this example that
doNothing() is nothing but a method that will do nothing when applied to something. There are very limited uses of it as we have seen above. By default, all void methods in Mockito do nothing.