Skrevet i samarbeid med AI - GeminiTeknologi - Nuxt, TypeScript, Vitest, Python
Verktøy - Vitest, npm, git
- 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.
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.