Class BDDMockito

  extended by org.mockito.Matchers
      extended by org.mockito.Mockito
          extended by org.mockito.BDDMockito

public class BDDMockito
extends Mockito

Behavior Driven Development style of writing tests uses //given //when //then comments as fundamental parts of your test methods. This is exactly how we write our tests and we warmly encourage you to do so!

Start learning about BDD here:

The problem is that current stubbing api with canonical role of when word does not integrate nicely with //given //when //then comments. It's because stubbing belongs to given component of the test and not to the when component of the test. Hence BDDMockito class introduces an alias so that you stub method calls with given(Object) method. Now it really nicely integrates with the given component of a BDD style test!

Here is how the test might look like:

 import static org.mockito.BDDMockito.*;
 Seller seller = mock(Seller.class);
 Shop shop = new Shop(seller);
 public void shouldBuyBread() throws Exception {
   given(seller.askForBread()).willReturn(new Bread());
   Goods goods = shop.buyBread();
   assertThat(goods, containBread());
Stubbing voids with throwables:
   willThrow(new RuntimeException("boo")).given(mock).foo();
   Result result = systemUnderTest.perform();
   assertEquals(failure, result);

One of the purposes of BDDMockito is also to show how to tailor the mocking syntax to a different programming style.

Nested Class Summary
static interface BDDMockito.BDDMyOngoingStubbing<T>
          See original OngoingStubbing
static class BDDMockito.BDDOngoingStubbingImpl<T>
static interface BDDMockito.BDDStubber
          See original Stubber
static class BDDMockito.BDDStubberImpl
Field Summary
Fields inherited from class org.mockito.Mockito
Constructor Summary
Method Summary
<T> BDDMockito.BDDMyOngoingStubbing<T>
given(T methodCall)
          see original Mockito.when(Object)
static BDDMockito.BDDStubber willAnswer(Answer answer)
          see original Mockito.doAnswer(Answer)
static BDDMockito.BDDStubber willCallRealMethod()
          see original Mockito.doCallRealMethod()
static BDDMockito.BDDStubber willDoNothing()
          see original Mockito.doNothing()
static BDDMockito.BDDStubber willReturn(java.lang.Object toBeReturned)
          see original Mockito.doReturn(Object)
static BDDMockito.BDDStubber willThrow(java.lang.Throwable toBeThrown)
          see original Mockito.doThrow(Throwable)
Methods inherited from class org.mockito.Mockito
atLeast, atLeastOnce, atMost, doAnswer, doCallRealMethod, doNothing, doReturn, doThrow, inOrder, mock, mock, mock, mock, mock, never, reset, spy, stub, stubVoid, times, validateMockitoUsage, verify, verify, verifyNoMoreInteractions, verifyZeroInteractions, when, withSettings
Methods inherited from class org.mockito.Matchers
any, any, anyBoolean, anyByte, anyChar, anyCollection, anyCollectionOf, anyDouble, anyFloat, anyInt, anyList, anyListOf, anyLong, anyMap, anyObject, anySet, anySetOf, anyShort, anyString, argThat, booleanThat, byteThat, charThat, contains, doubleThat, endsWith, eq, eq, eq, eq, eq, eq, eq, eq, eq, floatThat, intThat, isA, isNotNull, isNull, longThat, matches, notNull, refEq, same, shortThat, startsWith
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public BDDMockito()
Method Detail


public static <T> BDDMockito.BDDMyOngoingStubbing<T> given(T methodCall)
see original Mockito.when(Object)


public static BDDMockito.BDDStubber willThrow(java.lang.Throwable toBeThrown)
see original Mockito.doThrow(Throwable)


public static BDDMockito.BDDStubber willAnswer(Answer answer)
see original Mockito.doAnswer(Answer)


public static BDDMockito.BDDStubber willDoNothing()
see original Mockito.doNothing()


public static BDDMockito.BDDStubber willReturn(java.lang.Object toBeReturned)
see original Mockito.doReturn(Object)


public static BDDMockito.BDDStubber willCallRealMethod()
see original Mockito.doCallRealMethod()