Tworzenie testów jednostkowych

dbt średnio zaawansowany

Mike Metzger

Data Engineer

Czym jest test jednostkowy?

  • Niestandardowy test danych
  • Zapisany jako zapytanie SQL
    • Musi zwracać wiersze niespełniające warunków
  • Definiowany jako plik .sql w katalogach tests

Obraz testowy

1 Photo by Antoine Dautry on Unsplash
dbt średnio zaawansowany

Przykładowy test jednostkowy

  • Utwórz test weryfikujący:
    • order_total >= subtotal
select *
from order
where order_total < subtotal
  • Pamiętaj, że chcemy wierszy, które nie spełniają testu – jeśli wiersze są zwracane, test kończy się niepowodzeniem.
  • Zapisz plik jako assert_order_total_gte_subtotal.sql

Diagram schematu tabeli zamówień

dbt średnio zaawansowany

Test jednostkowy z Jinja

  • Możemy używać Jinja w testach
    • Funkcja ref
    • Inne funkcje w razie potrzeby
  • dbt podstawia dane wyjściowe podczas uruchamiania testu
    • Ponownie uruchom projekt po zmianie profilu dbt
select *
from {{ ref('order') }}
where order_total < subtotal
dbt średnio zaawansowany

Debugowanie testów

  • Użyj edytora SQL, aby utworzyć wstępne zapytanie testowe
  • Umieść zapytanie w odpowiednim pliku
  • Nadaj testowi unikalną nazwę
  • Użyj opcji dbt test --select <testname>
  • Sprawdź błędy i wprowadź poprawki
dbt średnio zaawansowany

Czas na ćwiczenia!

dbt średnio zaawansowany

Preparing Video For Download...