Strategieën voor end-to-endtests
Implementeer end-to-endtests om gebruikersflows te simuleren en te controleren of de volledige tRPC-applicatie werkt zoals verwacht.
Strategieën voor end-to-endtests is een gratis tRPC API's met typeveiligheid van begin tot eind-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject tRPC API's met typeveiligheid van begin tot eind. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus tRPC API's met typeveiligheid van begin tot eind bevat in totaal 4 lessen.
Test je app zoals een echte gebruiker
Welkom bij end-to-endtests (E2E-tests)! Deze strategie simuleert hoe een echte gebruiker van begin tot eind met je applicatie werkt. De volledige stack komt aan bod: je frontend, backend, database en netwerk.
E2E-tests zorgen ervoor dat alle onderdelen naadloos samenwerken, precies zoals in een liveomgeving. Zie het als een robotgebruiker die op je app klikt, erin typt en het gedrag ervan controleert.
Voorbij typesafety: validatie van de volledige stack
Hoewel tRPC uitstekende end-to-end-typesafety biedt, hebben E2E-tests een ander, cruciaal doel. Typesafety helpt bugs tijdens het compileren te voorkomen, maar E2E-tests ontdekken problemen die tijdens runtime kunnen ontstaan.
Daarbij gaat het onder andere om implementatieproblemen, configuratiefouten, netwerkproblemen en integratiebugs die statische analyse eenvoudigweg niet kan detecteren. E2E-testen valideert de daadwerkelijke gebruikerservaring in je volledige tRPC-aangedreven applicatie.
Je E2E-tool kiezen
Om E2E-tests te schrijven heb je een testframework nodig. Populaire keuzes zijn Playwright en Cypress. Met beide kun je browserinteracties automatiseren en de status van je applicatie controleren.
- Playwright: staat bekend om ondersteuning voor meerdere browsers (Chromium, Firefox, WebKit), sterke parallellisatie en betrouwbare mogelijkheden om automatisch te wachten.
- Cypress: biedt een uitstekende ontwikkelervaring met realtime herladen en krachtige hulpprogramma's voor foutopsporing, rechtstreeks in de browser.
In onze voorbeelden richten we ons vanwege de veelzijdigheid op Playwright.
Aan de slag met Playwright
Playwright instellen is eenvoudig. Je initialiseert het doorgaans in je project en Playwright handelt de installatie van browsers af. Vervolgens maakt het een configuratiebestand en een voorbeeldtest aan.
Open om te beginnen je terminal in de hoofdmap van je project en voer het volgende uit:
npm init playwright@latest
# Follow prompts: choose TypeScript, add a test fileMet deze opdracht installeer je Playwright en de binaire bestanden van de browsers en stel je het bestand playwright.config.ts in voor je testinstellingen.
Gebruikersgedrag nabootsen
Met Playwright kun je gebruikersacties simuleren, zoals op knoppen klikken, tekst in velden typen en door pagina's navigeren. Je gebruikt 'locators' om elementen op de pagina te vinden.
Hier zie je een fragment dat laat zien hoe je naar een pagina navigeert en een inlogformulier invult:
// tests/login.spec.ts
import { test, expect } from '@playwright/test';
test('should navigate to login and fill form', async ({ page }) => {
await page.goto('http://localhost:3000/login');
await page.locator('input[type="email"]').fill('test@example.com');
await page.locator('input[type="password"]').fill('password123');
await page.locator('button', { hasText: 'Login' }).click();
// Further assertions would go here
});tRPC testen via de frontend
Het is belangrijk om te onthouden dat E2E-tests de procedures van je tRPC-backend niet rechtstreeks aanroepen. In plaats daarvan werken ze met de gebruikersinterface (UI) van je frontend.
Wanneer je UI een tRPC-query of -mutatie activeert (bijvoorbeeld bij het verzenden van een formulier), observeert de E2E-test de resulterende wijzigingen op de pagina. Je controleert of de UI correct wordt bijgewerkt, wat aangeeft dat de onderliggende tRPC-aanroep en backendlogica naar verwachting hebben gewerkt.
Voorbeeld: end-to-end een bericht maken
Laten we een voorbeeld doorlopen: het testen van het maken van een nieuw bericht in je applicatie. De E2E-test simuleert hoe een gebruiker naar de pagina voor het maken van een bericht navigeert, een formulier invult, het verzendt en vervolgens controleert of het nieuwe bericht in een lijst verschijnt.
// tests/post-creation.spec.ts
import { test, expect } from '@playwright/test';
test('should allow a user to create a new post', async ({ page }) => {
await page.goto('http://localhost:3000/posts/new');
await page.locator('input[placeholder="Title"]').fill('My New E2E Post');
await page.locator('textarea[placeholder="Content"]').fill('This is content from an E2E test.');
await page.locator('button', { hasText: 'Create Post' }).click();
// Assert redirection and new post visibility
await expect(page).toHaveURL(/posts$/); // Should redirect to /posts
await expect(page.locator('h2', { hasText: 'My New E2E Post' })).toBeVisible();
});Testgegevens beheren voor E2E-tests
Voor betrouwbare E2E-tests heb je een voorspelbare beginstatus nodig. Dat betekent dat je je testgegevens zorgvuldig moet beheren. Vaak moet je je database vullen met specifieke gegevens voordat een test wordt uitgevoerd en die gegevens daarna weer opruimen.
Mogelijke strategieën zijn: vóór elke test speciale API-eindpunten aanroepen (bijvoorbeeld /api/test/reset-db) of rechtstreeks werken met een testdatabase-instantie. Zo begint elke test met een schone lei en staat deze los van andere tests.
Controles en strategieën voor wachten
Na het uitvoeren van acties gebruiken E2E-tests controles om te verifiëren of de applicatie de verwachte status heeft. Playwright biedt krachtige methoden voor controles, met automatisch wachten.
Deze functie voor 'automatisch wachten' is cruciaal bij het testen van asynchrone UI-updates. Zo weet je zeker dat elementen zichtbaar zijn of actie kunnen uitvoeren voordat een controle of actie wordt gestart.
// Example assertions after actions
await expect(page.locator('.success-message')).toBeVisible();
await expect(page.locator('#item-count')).toHaveText('10');
await expect(page).toHaveURL(/dashboard/); // Checks the current URL
await expect(page.locator('button', { hasText: 'Delete' })).toBeDisabled();Korte controle: focus op E2E
End-to-endtests zijn cruciaal om de volledige doorstroming van je tRPC-applicatie te verifiëren. Welke van de volgende opties beschrijft het hoofddoel van een E2E-test het best?
E2E: het volledige verhaal van je applicatie
We hebben end-to-endtesten onderzocht en gekeken naar hun rol bij het valideren van de volledige gebruikersreis in tRPC-applicaties. Door echte gebruikersinteracties te simuleren met tools zoals Playwright, kun je ervoor zorgen dat je frontend en backend naadloos communiceren en de verwachte ervaring bieden.
E2E-tests vormen je laatste verdedigingslinie: ze ontdekken integratieproblemen en zorgen ervoor dat je applicatie vanuit het perspectief van de gebruiker werkt zoals bedoeld. Blijf deze strategieën oefenen om robuuste en betrouwbare tRPC-apps te bouwen!
Leer tRPC API's met typeveiligheid van begin tot eind met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 10
- Lessen
- 40
Veelgestelde vragen
Is de les “Strategieën voor end-to-endtests” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad tRPC API's met typeveiligheid van begin tot eind, waaronder “Strategieën voor end-to-endtests”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus tRPC API's met typeveiligheid van begin tot eind bevat in totaal 4 lessen.
Wat leer ik in “Strategieën voor end-to-endtests”?
Implementeer end-to-endtests om gebruikersflows te simuleren en te controleren of de volledige tRPC-applicatie werkt zoals verwacht. Je oefent met tRPC API's met typeveiligheid van begin tot eind door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met tRPC API's met typeveiligheid van begin tot eind te beginnen?
Ervaring vooraf is niet nodig. tRPC API's met typeveiligheid van begin tot eind op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Strategieën voor end-to-endtests”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over tRPC API's met typeveiligheid van begin tot eind?
Ja. Elke les over tRPC API's met typeveiligheid van begin tot eind bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- tRPC-procedures unittesten
- tRPC-routers integratietesten
- Strategieën voor end-to-endtests
- Context en dependencies mocken in tRPC-tests