Testy jednostkowe są tanie i powinno ich być najwięcej. Wiele osób uważa testy jednostkowe za zbędne, ponieważ napatrzyło się na złe testy, które zamiast budować pewność wprowadzają koszty utrzymania. Jednak dobrze napisane testy jednostkowe pomagają sprawdzić wszystkie ścieżki i unikać regresji w kodzie biznesowym. Pokazuję kilka ciekawostek i omawiam kilka kontrowersyjnych tematów, nad którymi każdy junior i mid powinien się zastanowić.
5. DLACZEGO TESTY JEDNOSTKOWE?
Są tanie
Jeśli nie testujesz getterów i setterów
Zmuszają do projektowania
TDD zmienia na zawsze
Wykrywają błędy
Po co testować skoro ma szansę zadziałać?
Dają spokój ducha
Mniej złych wiadomości w piątek wieczorem
Ułatwiają pracę w zespole
Testy jako dokumentacja
Poprawiają jakość
(Prawie) każdy test dodaje pewności
7. Ile kosztuje reakcja na błąd na produkcji?
BRAK CZASU?
Ile zajmuje pisanie testów długo po kodzie?
Jak trudna jest praca z cudzym kodem?
Ile procent pokrycia potrzeba naprawdę?
13. A METODY PRYWATNE?
Czy naprawdę musisz pisać testy
do prywatnych metod?
Czy da się zrefaktoryzować kod?
Czy da się przetestować różne scenariusze
z pomocą wyłącznie publicznych metod?
Czy to jest stary / cudzy kod?
14. A METODY PRYWATNE?
Jeśli już musisz…
http://www.javaexpress.pl/article/show/Testowanie_metod_prywatnych
https://ioki.pl/testy-jednostkowe-prywatnych-metod/
16. Dla zewnętrznych komponentów
wydzielić abstrakcje
MOIM ZDANIEM?
Najlepiej przygotować dane i posprzątać,
albo postawić nową instancję
Bazę / API testować
w testach integracyjnych
Chyba, że chcesz testować obciążenie.
Chcesz?
20. Który zazieleni testy
Pisz kod
I kompilowalną implementację
Tutaj upiększaj
Pisz testy
Ogarnij
CZYM JEST TDD?
21. Prostota
YAGNI - You Ain't Gonna Need That
Metoda małych kroków
Pokora
Nie wszystko od razu
Proś o pomoc
Praktyka
Fake it until you make it
KIEDY TDD ZADZIAŁA?
34. Mierz siły Trening czyni testera Znajdź wsparcie
Nie wszystko musisz testować
(na raz)
Im więcej piszesz,
tym lepiej piszesz
W grupie raźniej
35. CO DALEJ?
Kod ze slajdów:
https://github.com/PeggyBrown/currency-exchange
Prywatne metody:
http://carlosschults.net/en/are-private-methods-a-code-smell/
https://4programmers.net/Forum/Java/316246-testy_jednostkowe_a_metody_prywatne
JUnit 5:
https://blog.scottlogic.com/2017/10/10/junit-5.html
Konwencje nazewnicze:
https://dzone.com/articles/7-popular-unit-test-naming
Given when then:
https://www.martinfowler.com/bliki/GivenWhenThen.html
36. Tutaj są owacje
I pytania
szkolatestow.online
Ola Kunysz
OlaQnysz
PeggyBrown