Stubber
Date: 2015-09-18

org.mockito.stubbing

## Interface Stubber

- All Known Implementing Classes:
    StubberImpl

      public interface Stubber

  Allows to choose a method when stubbing in doThrow()|doAnswer()|doNothing()|doReturn() style

  Example:

         doThrow(new RuntimeException()).when(mockedList).clear();

         //following throws RuntimeException:
         mockedList.clear();

  Also useful when stubbing consecutive calls:

         doThrow(new RuntimeException("one")).
         doThrow(new RuntimeException("two"))
         .when(mock).someVoidMethod();

  Read more about those methods:

  `Mockito.doThrow(Throwable)`

  `Mockito.doAnswer(Answer)`

  `Mockito.doNothing()`

  `Mockito.doReturn(Object)`

  See examples in javadoc for `Mockito`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `Stubber` | `doAnswer(Answer answer)` Use it for stubbing consecutive calls in `Mockito.doAnswer(Answer)` style:
           doAnswer(answerOne).
    `Stubber` | `doCallRealMethod()` Use it for stubbing consecutive calls in `Mockito.doCallRealMethod()` style.
    `Stubber` | `doNothing()` Use it for stubbing consecutive calls in `Mockito.doNothing()` style:
           doNothing().
    `Stubber` | `doReturn(java.lang.Object toBeReturned)` Use it for stubbing consecutive calls in `Mockito.doReturn(Object)` style.
    `Stubber` | `doThrow(java.lang.Class<? extends java.lang.Throwable> toBeThrown)` Use it for stubbing consecutive calls in `Mockito.doThrow(Class)` style:
           doThrow(RuntimeException.class).
    `Stubber` | `doThrow(java.lang.Throwable toBeThrown)` Use it for stubbing consecutive calls in `Mockito.doThrow(Throwable)` style:
           doThrow(new RuntimeException("one")).
    `<T> T` | `when(T mock)` Allows to choose a method when stubbing in doThrow()|doAnswer()|doNothing()|doReturn() style

- - ### Method Detail

    - #### when

          <T> T when(T mock)

      Allows to choose a method when stubbing in doThrow()|doAnswer()|doNothing()|doReturn() style

      Example:

             doThrow(new RuntimeException())
             .when(mockedList).clear();

             //following throws RuntimeException:
             mockedList.clear();

      Read more about those methods:

      `Mockito.doThrow(Throwable)`

      `Mockito.doAnswer(Answer)`

      `Mockito.doNothing()`

      `Mockito.doReturn(Object)`

      See examples in javadoc for `Mockito`

      Parameters:
        `mock` - The mock
      Returns:
        select method for stubbing

    - #### doThrow

          Stubber doThrow(java.lang.Throwable toBeThrown)

      Use it for stubbing consecutive calls in `Mockito.doThrow(Throwable)` style:

             doThrow(new RuntimeException("one")).
             doThrow(new RuntimeException("two"))
             .when(mock).someVoidMethod();

      See javadoc for `Mockito.doThrow(Throwable)`
      Parameters:
        `toBeThrown` - to be thrown when the stubbed method is called
      Returns:
        stubber - to select a method for stubbing

    - #### doThrow

          Stubber doThrow(java.lang.Class<? extends java.lang.Throwable> toBeThrown)

      Use it for stubbing consecutive calls in `Mockito.doThrow(Class)` style:

             doThrow(RuntimeException.class).
             doThrow(IllegalArgumentException.class)
             .when(mock).someVoidMethod();

      See javadoc for `Mockito.doThrow(Class)`
      Parameters:
        `toBeThrown` - exception class to be thrown when the stubbed method is called
      Returns:
        stubber - to select a method for stubbing

    - #### doAnswer

          Stubber doAnswer(Answer answer)

      Use it for stubbing consecutive calls in `Mockito.doAnswer(Answer)` style:

             doAnswer(answerOne).
             doAnswer(answerTwo)
             .when(mock).someVoidMethod();

      See javadoc for `Mockito.doAnswer(Answer)`
      Parameters:
        `answer` - to answer when the stubbed method is called
      Returns:
        stubber - to select a method for stubbing

    - #### doNothing

          Stubber doNothing()

      Use it for stubbing consecutive calls in `Mockito.doNothing()` style:

             doNothing().
             doThrow(new RuntimeException("two"))
             .when(mock).someVoidMethod();

      See javadoc for `Mockito.doNothing()`
      Returns:
        stubber - to select a method for stubbing

    - #### doReturn

          Stubber doReturn(java.lang.Object toBeReturned)

      Use it for stubbing consecutive calls in `Mockito.doReturn(Object)` style.

      See javadoc for `Mockito.doReturn(Object)`

      Parameters:
        `toBeReturned` - to be returned when the stubbed method is called
      Returns:
        stubber - to select a method for stubbing

    - #### doCallRealMethod

          Stubber doCallRealMethod()

      Use it for stubbing consecutive calls in `Mockito.doCallRealMethod()` style.

      See javadoc for `Mockito.doCallRealMethod()`

      Returns:
        stubber - to select a method for stubbing