Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon What is the difference between mock() and mockito.mock() in Mockito


What is the difference between mock() and mockito.mock() in Mockito


The `mock()` and `Mockito.mock()` methods in Mockito serve the same purpose, which is to create a mock object. However, there are some differences in how they are used:

1. Static vs. Instance Method:
- `mock()` is a static method, so you can call it directly on the Mockito class: `Mockito.mock(MyClass.class)`.
- `Mockito.mock()` is also a static method, so you can call it the same way: `Mockito.mock(MyClass.class)`.

2. Syntax Differences:
- The `mock()` method is part of the Mockito class, so you don't need to import the Mockito class to use it. You can simply call `mock(MyClass.class)`.
- The `Mockito.mock()` method requires you to import the Mockito class, so you would use `import org.mockito.Mockito; Mockito.mock(MyClass.class)`.

3. Flexibility:
- The `mock()` method is a bit more flexible, as it allows you to use static imports to simplify your code: `import static org.mockito.Mockito.mock; mock(MyClass.class)`.
- The `Mockito.mock()` method requires you to always use the fully qualified class name, which can make your code a bit more verbose.

In general, both methods serve the same purpose and produce the same result. The choice between `mock()` and `Mockito.mock()` often comes down to personal preference and coding style. Many developers prefer to use the `mock()` method with a static import, as it can make the code more concise and readable.

Here's an example of using both methods:

java
// Using mock()
import static org.mockito.Mockito.mock;

MyClass myMock = mock(MyClass.class);

// Using Mockito.mock()
import org.mockito.Mockito;

MyClass myMock = Mockito.mock(MyClass.class);

Both of these examples create a mock object of the `MyClass` class, and the choice between the two methods is largely a matter of personal preference and coding style.

Citations:
[1] https://www.tutorialspoint.com/mockito/index.htm
[2] https://ioflood.com/blog/mockito-verify/
[3] https://www.toptal.com/java/a-guide-to-everyday-mockito
[4] https://reflectoring.io/clean-unit-tests-with-mockito/
[5] https://intellipaat.com/blog/tutorial/mockito-tutorial/