En bedre måte å teste HTML i WordPress med assertEqualHTML() på
Testing av HTML-output er en viktig del av WordPress-utvikling, spesielt når man arbeider med plugins som genererer HTML, som blokker, filtre og kortkoder. Fra WordPress 6.9 finnes det nå en ny metode som forenkler denne prosessen: assertEqualHTML(). Denne metoden sammenligner HTML semantisk, noe som gjør at man kan unngå frustrasjonen med at tester kan feile på grunn av små forskjeller i attributtrekkefølge eller formatering. I denne guiden skal vi se nærmere på hvordan man bruker assertEqualHTML() og hvilke fordeler det gir å implementere denne metoden i testene dine.
Dette må du få på plass
Hva er assertEqualHTML()?
assertEqualHTML() er en metode tilgjengelig i WP_UnitTestCase siden WordPress 6.9. Den er designet for å sammenligne HTML-strenger på en smartere måte. I stedet for å sjekke hver detalj bokstavelig, vurderer denne metoden om de to HTML-ene gir den samme semantiske meningen.
Hva er fordelene?
- Redusert sjanse for feil: Du slipper å bekymre deg for rekkefølgen på attributter og andre små forskjeller som ikke påvirker hvordan innholdet vises i en nettleser.
- Forbedret lesbarhet: Testene blir lettere å forstå og vedlikeholde, fordi du kan fokusere på det semantiske innholdet heller enn detaljer som kan endres.
Slik løser du det
Slik bruker du assertEqualHTML()
1. Oppdater WordPress: Sørg for at du bruker WordPress 6.9 eller nyere for å få tilgang til assertEqualHTML(). 2. Forbered testen: Når du skriver tester for HTML-output, bytt ut metoden assertSame() med assertEqualHTML(). 3. Skriv en test: Her er et enkelt eksempel: «php function testimgtag() { $htmloutput = '<img src="image.jpg" loading="lazy" alt="An image">'; $expectedoutput = '<img loading="lazy" src="image.jpg" alt="An image">'; $this->assertEqualHTML($expectedoutput, $htmloutput); } « 4. Kjør testen: Testen din skal nå passere selv om rekkefølgen på attributtene forandres, så lenge den semantiske betydningen er den samme.
Fallgruver og råd
Vanlige feil
- Overser normalisering: Pass på å forstå at
assertEqualHTML()normaliserer HTML-strenger. Dette betyr at hvis du jobber med spesielle HTML-referanser, bør du sjekke hvordan de sammenlignes. Det kan være lurt å teste flere varianter for å forsikre deg om at de fungerer som forventet. - Unngå hardkoding av rekkefølge: Ikke anta at attributtene alltid vil være i en bestemt rekkefølge når du skriver tester.
assertEqualHTML()håndterer dette for deg, så fritt frem med ulike rekkefølger. - Ikke glem dokumentasjonen: Les gjennom den tilgjengelige dokumentasjonen for
assertEqualHTML()[1], og se eksempler på hvordan metoden er ment å bli brukt.
Oppsummering
assertEqualHTML() gir en praktisk løsning for WordPress-utviklere når det kommer til testing av HTML-output i plugins. Dens evne til å sammenligne HTML semantisk reduserer antallet frustrerende situasjoner der tester feiler på grunn av små forskjeller. Ved å implementere denne metoden kan du ikke bare forbedre testkvaliteten, men også spare tid på vedlikehold av tester i løpet av videre utvikling. Husk å oppdatere testene dine, ta i bruk assertEqualHTML(), og nyt en mer strømlinjeformet utviklingsprosess.
[1]: https://developer.wordpress.org/news/2026/02/a-better-way-to-test-html-in-wordpress-with-assertequalhtml/







