QA The Other WayKwaliteitsborging in het tijdperk van AI-automatisering. QA The Other Way.
Praktische QA

Een consolefout is geen onbehandelde uitzondering.

Verzamel consolemeldingen en paginafouten apart en controleer daarna het resultaat.

5 minuten leestijdQA The Other Way
Twee kanalen: consolemelding en onbehandelde uitzondering.
Eigen redactionele illustratie.
Illustratieve video bij dit artikel. Engelse tekst op het scherm; selecteer ondertitels voor deze taal.

Vertaalde editie. Technische identificatiegegevens blijven in hun oorspronkelijke vorm.

Verzamel consolemeldingen en paginafouten apart en controleer daarna het resultaat.
Lokaal verzonnen voorbeeld, geen klant- of leveranciersinterface.

Een test slaagt terwijl de pagina een fout logt. Een andere uitvoering werpt een onbehandelde uitzondering terwijl de verwachte kop zichtbaar blijft. Het zijn verschillende signalen. Eén verzamelen beschrijft het andere niet.

De Page-API documenteert console voor consoleaanroepen en pageerror voor onbehandelde uitzonderingen. ConsoleMessage heeft type en tekst. Bewaar het kanaal zodat een foutmelding geen verzonnen uitzonderingsdiagnose wordt.

Luister vóór de actie

Onze verzonnen pagina heeft een console.error-knop en een knop die Error plant. Geen externe bronnen of klantdata. De test wacht voor klikken en controleert het passende kanaal.

const pending = page.waitForEvent('console', message =>
  message.type() === 'error' && message.text() === 'demo diagnostic'
);
await page.getByRole('button', { name: 'Log demo error' }).click();
const message = await pending;
expect(message.text()).toBe('demo diagnostic');

Playwright-runner, geïmporteerde expect en lokale fixture zijn nodig. Wachten begint vóór de klik voor snelle gebeurtenissen. Het matcht een exacte verzonnen tekst, niet alle echte fouten. Registreer pageerror apart.

De gecontroleerde console.error geeft het gekozen bericht zonder pageerror. Een aparte geplande throw geeft pageerror met de verwachte tekst. Dit bevestigt deze fixture, niet alle browserdiagnostiek of bibliotheekregels.

Scheid verzamelen en beslissen

Een ontvangen gebeurtenis maakt niet vanzelf een falende assertion. Definieer welke onverwachte gebeurtenissen de flow blokkeren, welke bekende meldingen mogen en wie uitzonderingen beheert. Houd toestemmingslijsten smal en controleerbaar.

Bekijk oorsprong en actie voor een oorzaak. Console kan een afgehandelde situatie melden; een uitzondering kan ander werk betreffen. Geen van beide bewijst opslag. Behoud resultaatassertions.

Vonden setup of navigatie eerder plaats, dan is de lijst voor die periode onvolledig. Noem het waarnemingsvenster. Een lege lijst bewijst geen schone applicatie bij ongeobserveerde start of andere pagina.

Bescherm diagnostiek

Argumenten en fouten kunnen records, tokens of URL's bevatten. Verzamel alleen nodig materiaal en verwijder privédata vóór delen. Kunnen lezen geeft geen publicatietoestemming. Hier gebruiken we vaste verzonnen teksten.

Bekijk koppeltijdstip, filter en assertion die het resultaat gebruikt. AnyTest beschrijft verkenning en tests voor menselijke review. Geen specifieke consolefunctie wordt beweerd. Noteer kanaal, actie, verwachting en ontbrekend bewijs.

Een listener van één pagina beschrijft geen apart venster. Koppel gegevens aan pagina en periode. Controleer dekkingsgaten voordat lijsten een gezamenlijke releaseconclusie worden.

Veelgestelde vragen

Betekent console.error altijd een uitzondering?

Nee. Meldingen en uitzonderingen gebruiken aparte kanalen.

Laat luisteren een test falen?

Nee. Een assertion of regel moet de gegevens beoordelen.

Bronnen