package com.blogspot.toomuchcoding.book.chapter1._5_AddingMockitoHintsToExceptionMessages.verbose.hamcrest; import static org.hamcrest.CoreMatchers.*; import static org.hamcrest.MatcherAssert.*; import static org.mockito.BDDMockito.*; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mockito; import org.mockito.runners.VerboseMockitoJUnitRunner; import com.blogspot.toomuchcoding.book.chapter1._5_AddingMockitoHintsToExceptionMessages.MeanTaxFactorCalculator; import com.blogspot.toomuchcoding.book.chapter1._5_AddingMockitoHintsToExceptionMessages.TaxService; import com.blogspot.toomuchcoding.person.Person; @RunWith(VerboseMockitoJUnitRunner.class) public class MeanTaxFactorCalculatorTest { /** * VerboseMockitoJUnitRunner appends a listener that changes the failure's exception in a very hacky way... * <p/> * - Finds all unused stubs for given mocks * - Finds all stubs * - Prints additional warning msg - it might help in finding the reasons */ static final double UNUSED_VALUE = 10; @Test(expected = AssertionError.class) public void should_calculate_mean_tax_factor() { // given TaxService taxService = given(Mockito.mock(TaxService.class).performAdditionalCalculation()).willReturn(UNUSED_VALUE).getMock(); MeanTaxFactorCalculator systemUnderTest = new MeanTaxFactorCalculator(taxService); // when double meanTaxFactor = systemUnderTest.calculateMeanTaxFactorFor(new Person()); // then assertThat(meanTaxFactor, equalTo(UNUSED_VALUE)); } }