Testy jednostkowe w Javie - Istota testów jednostkowych, podstawy JUnit

Поділитися
Вставка
  • Опубліковано 27 гру 2024

КОМЕНТАРІ • 26

  • @robertstan6108
    @robertstan6108 4 роки тому +5

    super wartościowy materiał, czekam na kolejne

  • @jakubkiljanski4950
    @jakubkiljanski4950 2 роки тому +1

    Dzięki! Pomocny materiał.

  • @wacekwacek5971
    @wacekwacek5971 Рік тому

    Dobry material!

  • @przemysawtyczyno1086
    @przemysawtyczyno1086 4 роки тому +1

    Bardzo dobry materiał, dzięki

  • @programistaanonimowy8657
    @programistaanonimowy8657 4 роки тому +4

    Bardzo fajny materiał :) Leci sub i łapka :)

  • @Micha-ns3db
    @Micha-ns3db 4 роки тому +1

    Dobra prezentacja, dobra robota 😎

  • @mrkilwag
    @mrkilwag Рік тому

    Super kursik

  • @kamilwitkowski2521
    @kamilwitkowski2521 4 роки тому +2

    Kurs spadł mi z nieba ;)

  • @hubert3728
    @hubert3728 2 роки тому

    Dlaczego nie moge utowrzyc obietku CarService

  • @joachiml4238
    @joachiml4238 2 роки тому

    a jak to testować jeżeli łaczę sie z JDBC?

  • @kubawroblewski8400
    @kubawroblewski8400 3 роки тому

    Ja pitole nic nie kumam masakra znowu czarna magia

    • @sebon11
      @sebon11 3 роки тому

      Jak dla mnie ok

  • @hubert3728
    @hubert3728 2 роки тому

    Dlaczego wpisujac adnotacje "@Test" nic mi nie wyskakuje? ;/

  • @tomaszszybicki6392
    @tomaszszybicki6392 4 роки тому +1

    czemu nie piszesz najpierw testów, a dopiero potem kodu? (TDD)

  • @vinci_irl
    @vinci_irl 3 роки тому +1

    ja pierdole mogłem zostać raperem

  • @zdzichuWentyl
    @zdzichuWentyl 4 роки тому

    Super a co z metoda private isCorrect pokrywac testami czy nie ?

    • @JavaSolutions
      @JavaSolutions  4 роки тому

      Jak najbardziej można, tylko trzeba zmienić modyfikator dostępu na package-private :) Nie jest to jednak wymagane, jeśli przetestujesz wszystkie przypadki tej metody w metodzie ją wykorzystującej ( takie podejście bym rekomendował w tym przypadku). W bardziej złożonych metodach, które wykorzystują po kilka prywatnych metod, te rozbicie testów na pojedyncze metody jest korzystniejsze ze względu na czytelność. Reasumując:
      - Prosty przypadek (metoda główna z jedną- dwoma prywatnymi wykonującymi jakąś logikę) lepiej testować w głównej wszystkie casy.
      - Złożony przypadek(powyżej dwóch prywatnych metod wykonujących jakąś logikę) lepiej zmienić je na package private i przetestować osobno :)
      Oczywiście to dość subiektywne zdanie, ja zawsze w takich przypadkach biorę pod uwagę opcję, która będzie prostsza, czytelniejsza i łatwiejsza w utrzymaniu.

    • @zdzichuWentyl
      @zdzichuWentyl 4 роки тому

      ​@@JavaSolutions To ze mozna to ja dobrze wiem ale jakieś są praktyki co lepiej zrobić jestem zdania ze zawsze nasz kod powinien dążyć do ideału w kazdym mozliwym aspekcie

    • @JavaSolutions
      @JavaSolutions  4 роки тому

      Zgadzam się, kluczowa jest jak najlepsza jakość kodu. Najistotniejsze jest jednak to aby przetestować wszystkie niezbędne przypadki (wartości graniczne, sytuacje wyjątkowe, null casy itp.) Zwróć uwagę że testując osobno metodę isCorrect() dla przypadku wartości -1 oraz analyzeCarByParams(-1, 2, 3) otrzymamy ten sam przypadek testowy, więc mija się to z celem i mamy duplikat, dlatego lepszym jest testowanie głównej metody, w tym przypadku (analyzeCarByParams).

    • @zdzichuWentyl
      @zdzichuWentyl 4 роки тому

      @@JavaSolutions Ciekawa uwaga ale napewnoe wtedy nie mamy pokrycia kodu w 100 %

    • @JavaSolutions
      @JavaSolutions  4 роки тому

      @@zdzichuWentyl Kod nigdy nie powinien być w 100% pokryty testami, dla przykładu możliwie prostego: Robiąc UI w Swingu, układając komponenty w layouty, nie będziesz testował czy dany komponent jest ustawiony w odpowiednim miejscu gdyż to nie ma sensu, ponieważ z łatwością tym ułożeniem zarządzasz z poziomu kodu, nie ma tutaj żadnej logiki do przetestowania. W wielu projektach standardem jest 20 - 30% pokrycia kodu testami i takie projekty działają dość niezawodnie.

  • @charlesLeeRay
    @charlesLeeRay 3 роки тому

    A może tak ?
    TREAD_THICKNESS(2, Integer.MAX_VALUE);

  • @przemyslawgasecki4817
    @przemyslawgasecki4817 3 роки тому +1

    mileage!