Skip to content

Instantly share code, notes, and snippets.

@Sch3lp
Last active December 6, 2016 14:17
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Sch3lp/a712cb3bc2098253a2187d3ad26da431 to your computer and use it in GitHub Desktop.
Save Sch3lp/a712cb3bc2098253a2187d3ad26da431 to your computer and use it in GitHub Desktop.
Example of tight coupling between Test and Implementation with Mockito, aka Mockitis
@RunWith(MockitoJUnitRunner.class)
public class SettlementMockitoTest {
@Test
public void settlement_WhenMoreSettlersAssignedToDefenseThanAmountOfRaiders_CanDefendItself() throws Exception {
Raiders raiders = mock(Raiders.class);
when(raiders.getAmountOfRaiders()).thenReturn(1);
Settler defender = mock(Settler.class);
Settler farmer = mock(Settler.class);
Settler clerk = mock(Settler.class);
List<Settler> settlers = Arrays.asList(defender, farmer, clerk);
when(defender.isAssignedToDefense()).thenReturn(true);
when(farmer.isAssignedToDefense()).thenReturn(false);
when(clerk.isAssignedToDefense()).thenReturn(false);
Settlement settlement = new Settlement(settlers);
assertThat(settlement.defend(raiders)).isTrue();
}
@Test
public void settlement_WhenEqualSettlersAssignedToDefenseThanAmountOfRaiders_CanDefendItself() throws Exception {
Raiders raiders = mock(Raiders.class);
when(raiders.getAmountOfRaiders()).thenReturn(2);
Settler defender = mock(Settler.class);
Settler farmer = mock(Settler.class);
Settler clerk = mock(Settler.class);
List<Settler> settlers = Arrays.asList(defender, farmer, clerk);
when(defender.isAssignedToDefense()).thenReturn(true);
when(farmer.isAssignedToDefense()).thenReturn(true);
when(clerk.isAssignedToDefense()).thenReturn(false);
Settlement settlement = new Settlement(settlers);
assertThat(settlement.defend(raiders)).isTrue();
}
@Test
public void settlement_WhenLessSettlersAssignedToDefenseThanAmountOfRaiders_CanNotDefendItself() throws Exception {
Raiders raiders = mock(Raiders.class);
when(raiders.getAmountOfRaiders()).thenReturn(2);
Settler defender = mock(Settler.class);
Settler farmer = mock(Settler.class);
Settler clerk = mock(Settler.class);
List<Settler> settlers = Arrays.asList(defender, farmer, clerk);
when(defender.isAssignedToDefense()).thenReturn(true);
when(farmer.isAssignedToDefense()).thenReturn(false);
when(clerk.isAssignedToDefense()).thenReturn(false);
Settlement settlement = new Settlement(settlers);
assertThat(settlement.defend(raiders)).isFalse();
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment