code: public static <T> T mock(Class<T> classToMock, MockSettings mockSettings) {
          return DefaultMockCreator.mock(classToMock, false, false, null, mockSettings, (Method[]) null);
      }
docs: Creates a mock with some non-standard settings.
  <p>
  The number of configuration points for a mock grows so we need a fluent
  way to introduce new configuration without adding more and more
  overloaded Mockito.mock() methods. Hence {@link MockSettings}.
  <p>
  <pre>
  Listener mock = mock(Listener.class, withSettings()
  .name(&quot;firstListner&quot;).defaultBehavior(RETURNS_SMART_NULLS));
  );
  </pre>
  <p>
  <b>Use it carefully and occasionally</b>. What might be reason your test
  needs non-standard mocks? Is the code under test so complicated that it
  requires non-standard mocks? Wouldn't you prefer to refactor the code
  under test so it is testable in a simple way?
  <p>
  See also {@link Mockito#withSettings()}
  <p>
  See examples in javadoc for {@link Mockito} class
  
  @param classToMock  class or interface to mock
  @param mockSettings additional mock settings
  @return mock object