Portrett av Kristoffer Gjøsund
Portrett av Kristoffer Gjøsund
Laster referanser...
- Garden Outlet

Kristoffer Gjøsund

LogicMeetsCreativeSolutions

Forener min akademiske reise fra bygg, helse og IT. Til å skape løsninger gjennom samarbeid. For meg er utfordringer en felles reise

Sosial media Linker / Kontakt

Kvalitetssikring, forbedringer av koblingspunkt og testoptimalisering

Opprettelsen av testdekning for prosjektets backend-kobling og pagineringslogikk avdekket et behov for en teststruktur. Ved å skille ut tilkoblingslogikk og legge til falske Nuxt-runtime-miljøer, er fundamentet for testingen modernisert. Det sikrer en stabil drift og raskere endringer av endepunktsstrukturer uten behov for tunge mock-filer.

Programinformasjon

Skrevet i samarbeid med AI - GeminiTeknologi - Nuxt, TypeScript, Vitest, Python Verktøy - Vitest, npm, git

Dagens aktiviteter

  • Opprettet en gjenbrukbar hjelpefunksjon for å hente data fra koblingspunkter.
  • Sørget for at pagineringslogikken returnerer en tom liste [] fremfor null ved manglende treff.
  • Oppdatert lokal miljøvariabel i konfigurasjonsfilene.
  • Forenklet testene for kartleggingsfunksjonaliteten ved å ta i bruk delvise objekt-sjekker (expect.objectContaining) og lengdesjekker, samt konfigurert pålitelige Nuxt-runtime-config- og fetch-mocks.

Motivasjon & Energi - 10 / 10

Dagen har vært proaktiv og perfekt.

Utfordring & Løsning

Det manglet testdekning for både backend-koblingen som henter prosjektene fra GitHub og pagineringslogikken som viser frem prosjektene. Testdekningen for koblingspunktene krevde store mengder med repeterende og hardkodede data.

Hensikten var å sikre at både backend og frontend er stabile, og gjøre testdekningen fleksibel og vedlikeholdsvennlig.

  • Refaktorerte koblingspunktet for å skille ut ruting- og tilkoblingslogikk, og oppdaterte pagineringsfunksjonaliteten slik at den returnerer en tom matrise.
  • Separerte koblingspunktet fra frontend til backend fra funksjonen som kalte prosjektene, for å gjøre funksjonaliteten mer fleksibel for å hente andre data fra backend.
  • Opprettet falske Nuxt-runtime-miljøer (useFetch og useRuntimeConfig) i test-suiten for å ivareta applikasjonens standardinnstillinger.
  • Laget nye tester for composable-funksjoner og kartleggingsfunksjonaliteten for å validere antall elementer og essensielle felter ved hjelp av expect.objectContaining.

Prosjektet har nå utvidet testdekningen for å inkludere koblingspunktene fra frontend til backend. Det nye testoppsettet gjør det raskere å utvide og endre API-strukturer i fremtiden uten å måtte skrive om massive mock-filer.

Erfaringen viser at å ta i bruk delvise objekt-verifikasjoner (expect.objectContaining) fremfor eksakte mock-data gjør testene langt mer robuste og enklere å vedlikeholde, ettersom mindre endringer i datastrukturene ikke lenger krever oppdatering av store testfiler.