VoidMethodStubbable
Date: 2015-09-18

org.mockito.stubbing

## Interface VoidMethodStubbable<T>

- All Known Implementing Classes:
    VoidMethodStubbableImpl

      public interface VoidMethodStubbable<T>

  Stubs void method with an exception. E.g:

       stubVoid(mock).toThrow(new RuntimeException()).on().someMethod();

       //you can stub with different behavior for consecutive method calls.
       //Last stubbing (e.g: toReturn()) determines the behavior for further consecutive calls.
       stubVoid(mock)
        .toThrow(new RuntimeException())
        .toReturn()
        .on().someMethod();

  See examples in javadoc for `Mockito.stubVoid(T)`

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `T` | `on()` Choose void method for stubbing.
    `VoidMethodStubbable<T>` | `toAnswer(Answer<?> answer)` Stubs a void method with generic `Answer`
    `VoidMethodStubbable<T>` | `toReturn()` Stubs void method to 'just return' (e.g.
    `VoidMethodStubbable<T>` | `toThrow(java.lang.Throwable throwable)` Stubs void method with an exception.

- - ### Method Detail

    - #### toThrow

          VoidMethodStubbable<T> toThrow(java.lang.Throwable throwable)

      Stubs void method with an exception. E.g:

           stubVoid(mock).toThrow(new RuntimeException()).on().someMethod();

      If throwable is a checked exception then it has to match one of the checked exceptions of method signature. See examples in javadoc for `Mockito.stubVoid(T)`
      Parameters:
        `throwable` - to be thrown on method invocation
      Returns:
        VoidMethodStubbable - typically to choose void method and finish stubbing

    - #### toReturn

          VoidMethodStubbable<T> toReturn()

      Stubs void method to 'just return' (e.g. to not to throw any exception)

      Only use this method if you're stubbing consecutive calls.

      For example:

           stubVoid(mock)
             .toReturn()
             .toThrow(new RuntimeException())
             .on().foo(10);

      - first time foo(10) is called the mock will 'just return' (e.g. don't throw any exception)
      - second time foo(10) is called the mock will throw RuntimeException
      - every consecutive time foo(10) is called the mock will throw RuntimeException

      See examples in javadoc for `Mockito.stubVoid(T)`

      Returns:
        VoidMethodStubbable - typically to choose void method and finish stubbing

    - #### toAnswer

          VoidMethodStubbable<T> toAnswer(Answer<?> answer)

      Stubs a void method with generic `Answer`

      For Example:

           stubVoid(mock)
             .toAnswer(new Answer() {
                           public Object answer(InvocationOnMOck invocation) {
                               Visitor v = (Visitor) invocation.getArguments()[0];
                               v.visitMock(invocation.getMock());

                               return null;
                           }
                       })
              .on().accept(any());

      Parameters:
        `answer` - the custom answer to execute.
      Returns:
        VoidMethodStubbable - typically to choose void method and finish stubbing

    - #### on

          T on()

      Choose void method for stubbing. E.g:

           stubVoid(mock).toThrow(new RuntimeException()).on().someMethod("some arg");

      See examples in javadoc for `Mockito.stubVoid(T)`
      Returns:
        mock object itself