|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object org.mockito.internal.creation.MockSettingsImpl
public class MockSettingsImpl
Constructor Summary | |
---|---|
MockSettingsImpl()
|
Method Summary | |
---|---|
boolean |
containsInvocationListener(InvocationListener invocationListener)
|
MockSettings |
defaultAnswer(Answer defaultAnswer)
Specifies default answers to interactions. |
MockSettings |
extraInterfaces(java.lang.Class<?>... extraInterfaces)
Specifies extra interfaces the mock should implement. |
Answer<java.lang.Object> |
getDefaultAnswer()
|
java.lang.Class<?>[] |
getExtraInterfaces()
|
java.util.List<InvocationListener> |
getInvocationListeners()
|
MockName |
getMockName()
|
java.lang.Object |
getSpiedInstance()
|
boolean |
hasInvocationListeners()
|
void |
initiateMockName(java.lang.Class classToMock)
|
MockSettings |
invocationListeners(InvocationListener... listeners)
Registers a listener for method invocations on this mock. |
boolean |
isSerializable()
|
MockSettings |
name(java.lang.String name)
Specifies mock name. |
MockSettings |
serializable()
Configures the mock to be serializable. |
MockSettings |
spiedInstance(java.lang.Object spiedInstance)
Specifies the instance to spy on. |
MockSettings |
verboseLogging()
Enables real-time logging of method invocations on this mock. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public MockSettingsImpl()
Method Detail |
---|
public MockSettings serializable()
MockSettings
WARNING: This should be rarely used in unit testing.
The behaviour was implemented for a specific use case of a BDD spec that had an unreliable external dependency. This was in a web environment and the objects from the external dependency were being serialized to pass between layers.
Example:
List serializableMock = mock(List.class, withSettings().serializable());
serializable
in interface MockSettings
public MockSettings extraInterfaces(java.lang.Class<?>... extraInterfaces)
MockSettings
This mysterious feature should be used very occasionally. The object under test should know exactly its collaborators & dependencies. If you happen to use it often than please make sure you are really producing simple, clean & readable code.
Examples:
Foo foo = mock(Foo.class, withSettings().extraInterfaces(Bar.class, Baz.class));
//now, the mock implements extra interfaces, so following casting is possible:
Bar bar = (Bar) foo;
Baz baz = (Baz) foo;
extraInterfaces
in interface MockSettings
extraInterfaces
- extra interfaces the should implement.
public MockName getMockName()
public java.lang.Class<?>[] getExtraInterfaces()
public java.lang.Object getSpiedInstance()
public MockSettings name(java.lang.String name)
MockSettings
Beware that naming mocks is not a solution for complex code which uses too many mocks or collaborators. If you have too many mocks then refactor the code so that it's easy to test/debug without necessity of naming mocks.
If you use @Mock annotation then you've got naming mocks for free! @Mock uses field name as mock name. Read more.
Examples:
Foo foo = mock(Foo.class, withSettings().name("foo"));
//Below does exactly the same:
Foo foo = mock(Foo.class, "foo");
name
in interface MockSettings
name
- the name of the mock, later used in all verification errors
public MockSettings spiedInstance(java.lang.Object spiedInstance)
MockSettings
As usual you are going to read the partial mock warning: Object oriented programming is more or less about tackling complexity by dividing the complexity into separate, specific, SRPy objects. How does partial mock fit into this paradigm? Well, it just doesn't... Partial mock usually means that the complexity has been moved to a different method on the same object. In most cases, this is not the way you want to design your application.
However, there are rare cases when partial mocks come handy: dealing with code you cannot change easily (3rd party interfaces, interim refactoring of legacy code etc.) However, I wouldn't use partial mocks for new, test-driven & well-designed code.
Enough warnings about partial mocks, see an example how spiedInstance() works:
Foo foo = mock(Foo.class, spiedInstance(fooInstance));
//Below does exactly the same:
Foo foo = spy(fooInstance);
spiedInstance
in interface MockSettings
spiedInstance
- to spy on
public MockSettings defaultAnswer(Answer defaultAnswer)
MockSettings
It is the default answer so it will be used only when you don't stub the method call.
Foo mock = mock(Foo.class, withSettings().defaultAnswer(RETURNS_SMART_NULLS));
Foo mockTwo = mock(Foo.class, withSettings().defaultAnswer(new YourOwnAnswer()));
//Below does exactly the same:
Foo mockTwo = mock(Foo.class, new YourOwnAnswer());
defaultAnswer
in interface MockSettings
defaultAnswer
- default answer to be used by mock when not stubbed
public Answer<java.lang.Object> getDefaultAnswer()
public boolean isSerializable()
public void initiateMockName(java.lang.Class classToMock)
public MockSettings verboseLogging()
MockSettings
Invocations are logged as they happen to the standard output stream.
Calling this method multiple times makes no difference.
Example:
List mockWithLogger = mock(List.class, withSettings().verboseLogging());
verboseLogging
in interface MockSettings
public MockSettings invocationListeners(InvocationListener... listeners)
MockSettings
Multiple listeners may be added, but the same object is only added once. The order, in which the listeners are added, is not guaranteed to be the order in which the listeners are notified. Example:
List mockWithListener = mock(List.class, withSettings().invocationListeners(new YourInvocationListener()));
See the listener interface
for more details.
invocationListeners
in interface MockSettings
listeners
- The invocation listeners to add. May not be null.
public java.util.List<InvocationListener> getInvocationListeners()
public boolean containsInvocationListener(InvocationListener invocationListener)
public boolean hasInvocationListeners()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |