private static <T> Class<T> getClassOf(T[] array) {
return (Class<T>) array.getClass().getComponentType();
}
/**
* Creates a mock object of type <var>typeToMock</var> and generates a name for it.
* @param <T> is the class of the mock
* @param reified don't pass any values to it. It's a trick to detect the class/interface you want to mock.
* @return the mock of typeToMock
*/
public <T> T mock(T... reified) {
if (reified.length > 0) {
throw new IllegalArgumentException(
"Please don't pass any values here. Java will detect class automagically.");
}
return mock(getClassOf(reified));
}
Currently mock object is created as follows -
This can be created like below as well. We don't have to explicitly provide class name.
This is in reference to pull request https://github.com/mockito/mockito/pull/2779#issuecomment-1312693742
Below code can be added -