Answer
Date: 2015-09-18

org.mockito.stubbing

## Interface Answer<T>

- Type Parameters:
    `T` - the type to return.
  All Known Implementing Classes:
    AnswerReturnValuesAdapter, CallsRealMethods, ClonesArguments, DoesNothing, ForwardsInvocations, GloballyConfiguredAnswer, Returns, ReturnsArgumentAt, ReturnsDeepStubs, ReturnsElementsOf, ReturnsElementsOf, ReturnsEmptyValues, ReturnsMocks, ReturnsMoreEmptyValues, ReturnsSmartNulls, StubbedInvocationMatcher, ThrowsException, ThrowsExceptionClass

      public interface Answer<T>

  Generic interface to be used for configuring mock's answer. Answer specifies an action that is executed and a return value that is returned when you interact with the mock.

  Example of stubbing a mock with custom answer:

       when(mock.someMethod(anyString())).thenAnswer(new Answer() {
           Object answer(InvocationOnMock invocation) {
               Object[] args = invocation.getArguments();
               Object mock = invocation.getMock();
               return "called with arguments: " + Arrays.toString(args);
           }
       });

       //Following prints "called with arguments: [foo]"
       System.out.println(mock.someMethod("foo"));

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `T` | `answer(InvocationOnMock invocation)`

- - ### Method Detail

    - #### answer

          T answer(InvocationOnMock invocation)
                   throws java.lang.Throwable

      Parameters:
        `invocation` - the invocation on the mock.
      Returns:
        the value to be returned
      Throws:
        `java.lang.Throwable` - the throwable to be thrown