author image

Sindre Grindheim

Sindre er en erfaren Data Platform Engineer innen arkitektur og implementasjon av moderne dataplattformer i Azure og Google Cloud, Databricks og Snowflake.

Korleis bruke unit-testar i dbt for makroar

20.11.2024 | 2 min lesetid
Kategori: Data Engineering | Emneknagger: #dbt, #testing

Har du blitt glad i dbt sine unit-testar, men lurer på korleis dei kan nyttast for makroar? Eller venter du eventuelt på gode use caser for å ta dei i bruk? Me deler eit foreslått test-rammeverk som mogleggjere einingstesting av makroar i dbt.

Me treng betre test-støtte for makroar

Såkalla einingstesting er ein viktig del av softwareutvikling, men er ofte vanskelig å implementere for datatransformasjonar. Med dbt 1.8 kom endeleg støtta for å einingsteste modellar, men med nokre begrensningar.

Makroar passar intuitivt som hand i hanske for einingstesting sidan dei sjølve er små logikkeiningar som tek noko input og genererer noko output. Det er og særs nyttig for dei som vedlikeheld pakker å kunne definere enkelt både teste og utvide test-oppsettet for makroane dei har utvikla, då innføring av feil potensielt kan treffe mange sluttbrukarar.

Men foreløpig er det ikkje støtte for å teste makroar direkte, og ein er difor avhengig av å tenkje litt kreativt for å finne eit oppsett som fungere godt.

Les meir om rammeverket for makro-einingstesting på Medium

Nyleg fann eg fram til eit testrammeverk som ser ut til fungere godt for makroar i dbt, og dette har eg skrive meir om i Medium-artikkelen under.

I korte trekk handlar det om å bruke ein ephemeral modell som kjelde, og deretter bruke denne i enkle modellar som bruker ein gitt makro. Deretter er det rett fram å benytte seg av det normale oppsettet for unit test, og dermed er det mogleg å og få testa logikken i makroane dine sånn at feil ikkje treff produksjon.

Lær meir om dbt

Eg har tidlegare skrive ein enkel artikkel om korleis ein kan kome i gong med dbt, så ta gjerne ein kikk kikk om du er ein heilt fersk bruker.

Sindre Grindheim

Sindre er en erfaren Data Platform Engineer innen arkitektur og implementasjon av moderne dataplattformer i Azure og Google Cloud, Databricks og Snowflake.