Każdy kod zostanie przetestowany, wcześniej bądź później. Pozostają jedynie pytania na jakim etapie i przez kogo zostanie to wykonane i jaki będzie tego ostateczny koszt. Gdy aplikacja staje się złożona i tworzy ją wiele różnych komponentów, proces testowania może zacząć przysparzać pewnych trudności, choćby z odwzorowaniem odpowiedniego środowiska uruchomienia testów. I tu przychodzi z pomocą biblioteka Testcontainers.
Testcontainers to framework pozwalający testować aplikację w oparciu o kontenery Dockera z prawdziwymi zależnościami systemu. I choć pozornie brzmi to banalnie, narzędzie to oferuje szereg bardzo praktycznych i przydatnych rozwiązań, znacznie upraszczających cały proces testowania integracyjnego.
Moim gościem jest dziś Piotr Przybył, Software Gardener z wieloletnim doświadczeniem programistycznym, który o praktycznym wykorzystaniu Testcontainers w projektach wie naprawdę sporo.
W tym odcinku rozmawiamy z Piotrem między innymi o:
- częstych problemach z testowaniem kodu i jego jednostkach,
- możliwych podejściach do organizacji testów w piramidy, odwrócone piramidy, plastry miodu...
- zasadzie działania biblioteki Testcontainers i jej kluczowych konceptach,
- różnicach pomiędzy Testcontainers a innymi sposobami uruchamiania usług podczas testów,
- synchronizacji kodu testów opartych o Testcontainers z infrastrukturą produkcyjną.
Zapraszam!
Materiały dodatkowe:
- Testcontainers Getting Started, dokumentacja omawianej w odcinku biblioteki
- Testcontainers Workshop, repozytorium na Githubie z przykładowym kodem krok-po-kroku
- Integration tests are needed and simple, prezentacja Piotra o testach integracyjnych z użyciem TC z konferencji Devoxx UK 2023
- Wpisy o Testcontainers, blog Piotra o oprogramowaniu, nie tylko o testowaniu