Тёмный

Jak kompleksowo testować Web API z infrastrukturą? 

DevMentors
Подписаться 7 тыс.
Просмотров 4,4 тыс.
50% 1

👨‍🔬 Testowanie aplikacji to temat rzeka - w tym materiale, skupiamy się wyłącznie na roli infrastruktury w kontekście testów integracyjnych oraz E2E dla Web API.
❓ Jak poradzić sobie z zewnętrznymi zależnościami do takich komponentów infrastruktury jak np. baza danych, cache, kolejka wiadomości czy system monitorowania?
❓ Czy "mockowanie infry" ma jakikolwiek sens? Czy powinniśmy skorzystać ze zdalnego środowiska do przeprowadzenia testów, czy może lokalnego? Jak w tym wszystkim może nas wspomóc konteneryzacja oraz rozwiązania takie jak TestContainers?
Porównajmy możliwe opcje i zastanówmy się, czy istnieje w tym wszystkim pewien złoty środek.
Materiał o kontenerze IoC:
• Czym jest kontener IoC?
Materiał o "mockowaniu" zależności E2E:
• Mockowanie zewnętrznyc...
Timecodes:
00:00:00 - Intro
00:01:05 - Infrastruktura
00:02:30 - Testowanie na wcześniej przygotowanym środowisku
00:04:32 - Testowanie na emulowanym środowisku
00:06:27 - "Mockowanie" infrastruktury
00:11:16 - Środowisko zdalne - rzeczywista infrastruktura
00:14:51 - Środowisko lokalne - rzeczywista infrastruktura
00:18:40 - Konteneryzacja infrastruktury
00:22:17 - Czy istnieje złoty środek?
00:24:28 - Omówienie przykładowego Web API oraz testów
00:31:04 - "Mock" bazy danych
00:38:57 - Podmiana bazy danych
00:49:41 - Konteneryzacja infrastruktury z TestContainers
01:06:20 - Outro
💬 Zapraszamy również na:
⚡️ Discord: devmentors.io/discord-pl
⚡️ Instagram: / devmentors_pl
⚡️ TikTok: / devmentors
⚡️ Twitter: / dev_mentors_pl

Опубликовано:

 

1 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 16   
@robertkawa9932
@robertkawa9932 8 месяцев назад
Dzięki! Świetny materiał ;)
@jedynykaban5792
@jedynykaban5792 8 месяцев назад
hej, przede wszystkim wielkie dzięki za materiał, aż "bije" od Ciebie praktyczne doświadczenie;) ze swojej strony stosuję głównie mockowanie infrastruktury, i faktycznie pierwszego switch'a nie udało mi się uniknąć; co do "dostosowywania kodu do unit testów", to w rzeczy samej identycznie zdefiniowałem problem, no ale próbuję to obchodzić "mock'owaniem" (póki co mi się udaje, ale jest to upierdliwe i takie "nienaturalne"); zaś o testcontainers nie słyszałem i na pewno wypróbuję; mała uwaga co do materiału, ok. 31:50 odwołujesz się do materiału o rejestracji w kontenerze DI, może gdzieś jakiś link do tegoż materiału zamieścić?
@DevMentorsPL
@DevMentorsPL 8 месяцев назад
Dzięki! TestContainers polecam sprawdzić, bo dają radę gdy faktycznie infrastruktura nie jest za bardzo rozdmuchana i można ją łatwo dodać do testów. Wspomniane materiały zostały już dodane do opisu :)
@jedynykaban5792
@jedynykaban5792 8 месяцев назад
@@DevMentorsPL wczoraj pisałem trochę na szybko - na gorąco pod wpływem filmu, ale jak miałbym się precyzyjnie dzielić istniejącym systemem QA (za który odpowiadamy jako developerzy), to testy z pełną infrastrukturą też mamy, ale nie mają one "mocnego" odnośnika do Twojego materiału Piotrek (o ile mogę się do Ciebie zwrócić po imieniu ;) ); chodzi o to, że proces jest zautomatyzowany w "oldschoolowy" sposób, Jenkins, standalone (testowany) serwis, i "zewnętrzny" program testujący, bardzo intensywnie, przez około 2h w nocy - przy czym baza jest tu dokumentowa (mongo - klucze są generowane na warstwie API, scenariusze testowe mogą być i są uruchamiane równolegle), no i oczywiście "wadą" takiego rozwiązania, jest niejako konieczność "zduplikowania" logiki biznesowej w programie testującym (dlatego robi to kolega kodujący w innym języku programowania, żeby izolować nasze "mindsety" ;) ); jak nietrudno się domyślić, takie podejście bardziej już testuje nasze biznesowe procesy (end-to-end); odnośnie testcontainers, masz może jakieś doświadczenia jak to zachowuje się na githubowych akcjach CI?
@DevMentorsPL
@DevMentorsPL 8 месяцев назад
@@jedynykaban5792 nie wiem jak wypadnie połączenie TestContainers z GH actions, ale zakładam, że powinno działać, bazując na dokumentacji oraz doświadczeniu z innych projektów w odniesieniu do dość rozbudowanego użycia tego CI :)
@Dragonite594
@Dragonite594 8 месяцев назад
A takie pytanie w Rider jakiego Theme używasz do tych kolorów :) ?
@DevMentorsPL
@DevMentorsPL 8 месяцев назад
One Dark + własny zestaw kolorów, szablon jest dostępny do pobrania na naszym Discordzie :)
@enzonzee3929
@enzonzee3929 8 месяцев назад
Czy użycie biblioteki takiej jak Respawn do całkowitego czyszczenia bazy per każdy test jest znanym podejściem w dużych aplikacjach czy jednak testerzy używają migawek(pg_dump) lub rollbackow aby każdy test miał taki sam zestaw danych (z np. seeda)?
@DevMentorsPL
@DevMentorsPL 8 месяцев назад
Osobiście nie używałem Respawn (zazwyczaj tworzyło się proste narzędzia lub skrypty).
@mat.skalski
@mat.skalski 8 месяцев назад
cześć, pojawi się może osobne video o samych TestContainers?
@DevMentorsPL
@DevMentorsPL 8 месяцев назад
Raczej nie, bo dokumentacja ma wystarczająco sensowne przykłady :)
@seg3663
@seg3663 8 месяцев назад
Wszystko ok, ale 'serwajs' nie brzmi ok
@DevMentorsPL
@DevMentorsPL 8 месяцев назад
"Serwajs" to ironiczne określenie, myślałem, że to oczywiste :)
Далее
Modularny Monolit teoretycznie
18:05
Просмотров 4,1 тыс.
БИМ БАМ БУМ💥
00:14
Просмотров 4 млн
Dlaczego nie lubimy DZIEDZICZENIA?
1:40:40
Просмотров 6 тыс.
Mój problem z Domain-Driven Design...
33:14
Просмотров 10 тыс.
Dzień Studenta- sonda na MS AGH
8:56
Просмотров 2 тыс.
5 Rules For DTOs
17:56
Просмотров 39 тыс.
Robię code review swojego programu z 2014 roku...
1:59:38
When RESTful architecture isn't enough...
21:02
Просмотров 261 тыс.
Every New Feature Added in C# 12
14:19
Просмотров 149 тыс.