• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2016 Mockito contributors
3  * This program is made available under the terms of the MIT License.
4  */
5 package org.mockito.stubbing;
6 
7 import org.mockito.MockingDetails;
8 import org.mockito.NotExtensible;
9 import org.mockito.invocation.Invocation;
10 
11 /**
12  * Stubbing declared on the mock object.
13  * See detailed description including sample code and use cases see javadoc for {@link MockingDetails#getStubbings()}.
14  * <p>
15  * Since 2.10.0 this interface extends {@link Answer}.
16  * Extending Answer is backwards compatible because Stubbing interface is not extensible (see {@link NotExtensible}).
17  * Extending Answer was needed to improve Mockito domain model and simplify the code.
18  *
19  * @since 2.2.3
20  */
21 @NotExtensible
22 public interface Stubbing extends Answer {
23 
24     /**
25      * Returns the method invocation that is stubbed.
26      * E.g. in the example stubbing <code>when(mock.foo()).thenReturn(true)</code>
27      * the invocation is <code>mock.foo()</code>.
28      * <p>
29      * The invocation instance is mutable.
30      * It is not recommended to modify the state of invocation because it will influence mock behavior.
31      * <p>
32      * To understand how this method is useful, see the description at {@link MockingDetails#getStubbings()}.
33      *
34      * @since 2.2.3
35      */
getInvocation()36     Invocation getInvocation();
37 
38     /**
39      * Informs if the stubbing was used
40      * <p>
41      * What does it mean 'used stubbing'?
42      * Stubbing like <code>when(mock.foo()).thenReturn(true)</code> is considered used
43      * when the method <code>mock.foo()</code> is actually invoked during the execution of code under test.
44      * <p>
45      * This method is used internally by Mockito to report and detect unused stubbings.
46      * Unused stubbings are dead code and should be deleted to increase clarity of tests (see {@link org.mockito.quality.MockitoHint}.
47      * <p>
48      * To understand how this method is useful, see the description at {@link MockingDetails#getStubbings()}.
49      *
50      * @since 2.2.3
51      */
wasUsed()52     boolean wasUsed();
53 }
54