org.mockito.stubbing.VoidMethodStubbable Maven / Gradle / Ivy
/*
* Copyright (c) 2007 Mockito contributors
* This program is made available under the terms of the MIT License.
*/
package org.mockito.stubbing;
import org.mockito.Mockito;
/**
* 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 {@link Mockito#stubVoid}
*/
public interface VoidMethodStubbable {
/**
* 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 {@link Mockito#stubVoid}
*
* @param throwable to be thrown on method invocation
*
* @return VoidMethodStubbable - typically to choose void method and finish stubbing
*/
VoidMethodStubbable toThrow(Throwable throwable);
/**
* 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 {@link Mockito#stubVoid}
*
* @return VoidMethodStubbable - typically to choose void method and finish stubbing
*/
VoidMethodStubbable toReturn();
/**
* Stubs a void method with generic {@link 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());
*
*
* @param answer the custom answer to execute.
*
* @return VoidMethodStubbable - typically to choose void method and finish stubbing
*/
VoidMethodStubbable toAnswer(Answer> answer);
/**
* Choose void method for stubbing. E.g:
*
*
* stubVoid(mock).toThrow(new RuntimeException()).on().someMethod("some arg");
*
*
* See examples in javadoc for {@link Mockito#stubVoid}
*
* @return mock object itself
*/
T on();
}