Hej
Testuje sobie moduły aplikacji i zastanawiam się co jest lepsze. Do każdego testu tworzyć osobną instancję modułu/modułów?
Zalety jakie widzę to izolacja testów, dane zapisane w innych testach nie będą wpływać jakoś na wynik (chociaż w sumie może trochę powinny, żeby symulować działąjącą aplikacje a nie czystą?)
Wadą jest za to duża powtarzalność przy pisaniu "setupu" testu w stylu
@Test
public void shouldAddBetToMatch(){
//given
BetFacade betFacade = new InMemorySystem().betFacade();
LeagueFacade leagueFacade = new InMemorySystem().leagueFacade();
UUID leagueUUID = leagueFacade.createLeague("new");
UUID matchUUID = leagueFacade.addMatchToLeague(leagueUUID, new NewMatchDTO("host", "guest", 1));
//when
UUID betUUID = betFacade.addBetToMatch(matchUUID, new NewBetDTO(BetTyp.DRAW,"username"));
//then
Option<BetDTO> bet = betFacade.findBetByUUID(betUUID);
if(bet.isEmpty()){
fail("No bet");
}
BetDTO betDTO = bet.get();
assertEquals(matchUUID,betDTO.getMatchUUID);
assertEquals(BetTyp.DRAW,betDTO.getBetType());
assertEquals("username",betDTO.getUsername());
}
Co polecacie?