En snabb anteckning om enhetstestningskod i WordPress-projekt
Ju mer jag jobbar med WordPress, desto mer försöker jag göra enhetstester till en lika stor del av min utveckling som att bygga ut den faktiska funktionsuppsättningen. (Det är vad alla proffs säger att vi måste göra i alla fall.)
Men seriöst, det förbättrar kvaliteten eftersom, om något går sönder av någon annan anledning, kan du se vilket test som misslyckas eller till och med om du har missat täckning inom något område.
Jag är inte av vissas tankesätt att man måste ha 100% kodtäckning (och det finns anledningar till varför jag tycker detta), men jag tror att det är viktigt att ha så mycket kodtäckning som möjligt av kod som inte är direkt till WordPress.
Testa kod i WordPress
Jag vet inte om det låter förvirrande eller inte, men en av fällorna jag föll i tidigt när jag arbetade med enhetstestning och WordPress var att skriva tester mot WordPress kärnkod.
Jag gör det fortfarande ibland (och du kan fråga dem som jag jobbar med om detta är sant), även om jag blir bättre på det.
För mig kan WordPress i sig behandlas som en svart låda. Det är en grund som din ansökan lever på. Det finns redan tester kring WordPress-kärnan. Borde det finnas fler? Säker. Räcker det de har? Enligt min erfarenhet, ja, men vi använder alla en annan delmängd av nämnda funktioner.
Poängen som jag får det är denna: Varje gång du arbetar med ett projekt som är byggt på WordPress; du behöver inte skriva tester mot kod som add_menu_pageeller wp_enqueue_script.
Vi vet att de funktionerna fungerar.
Fokusera istället på koden som är specifik för din domän. Det vill säga fokusera på koden du och ditt team skriver. Det kommer att vara det specialområde som är unikt i projektet, och det kommer att vara det område som är ytterst ansvarigt för att lösa ett givet problem.
Om du siktar på att få 100 % täckning bara för 100 % täckning, så skriver du inte enhetstester av rätt anledning. Sträva istället efter vad den högsta graden av kodtäckning än är som testar din kod tillräckligt. Det är det som kommer att stärka kvaliteten.