Jeden test jedna instancja?

Jeden test jedna instancja?
danek
  • Rejestracja:ponad 10 lat
  • Ostatnio:7 miesięcy
  • Lokalizacja:Poznań
  • Postów:797
0

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

Kopiuj
   @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?


Spring? Ja tam wole mieć kontrole nad kodem ᕙ(ꔢ)ᕗ
Haste - mała biblioteka do testów z czasem.
IC
  • Rejestracja:ponad 7 lat
  • Ostatnio:około 6 lat
  • Postów:18
1

Przy testach jednostkowych, każdy przypadek powinien być niezależny. Jeżeli chcesz sprawdzić co się dzieje po wykonaniu kilku akcji w systemie to opakuj to w oddzielny test. Do ograniczenia zbędnego kodu to sprawdź adnotacje @Before, @BeforeClass z JUnit

danek
okej @Before odpala metodę przed każdym testem? Wygląda dobrze
danek
myślę, że rozwiązuje to póki co mój problem

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.