, begynder guide til enhed test: bygning testbare temaer,,,,, andel,,,,,,,, 11,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss., i de to første artikler i denne serie, vi tog en gruppe på højt niveau, se hvad enhed test er, og hvordan det skal anvendes i forbindelse med stik af udvikling.der er selvfølgelig mere end at skrive wordpress plugins, er der ikke?en betydelig del af en wordpress udviklere job – for nogle er det mest, betydelig del – er tema udvikling. i denne artikel, skal vi se på, hvordan vi kan udvikle testbare temaer.netop, vi skal se på, hvordan temaer er anderledes end plugins. og så skal vi til at skrive et meget simpelt tema, som skal anvendes til at påvise principperne om enhed, afprøvning, og som kan anvendes i fremtidige udvikling.,,,,,,, forståelse af, hvordan temaer er anderledes end plugins, før vi begynder at skabe et tema eller gennemgår en kode, det er vigtigt at forstå forskellen i tema, og stik af udvikling.først, plugins kan skrives på to måder:,, som et objekt, der sammenfatter en række funktioner (hvilket er, hvad vi gjorde i denne artikel). som en simpel samling af funktioner, begge metoder gør det samme, nemlig, at de bruger en samling af funktioner og filtre til at indføre nye funktioner wordpress.den primære forskel er, hvordan de funktioner, der er underlagt, men når det kommer til temaet udvikling, er der kun én måde at udvikle et tema, og det er ved hjælp af en samling af opgaver som defineret i funktioner. folkesundhedsprogrammet.det indeholder følgende to udfordringer for skriveenhed test for temaer:,, fordi emnet ikke samt, der er ingen måde for os at opbevare genstand i et system, som vi har gjort i den sidste artikel, skal vi fastlægge en måde at skrive og evaluere vores tema er funktioner, der kan drives uafhængigt af - en tema til en browser, fordi gode emner bruge en samling af filtre og foranstaltninger, vi er ved at skabe et tema, der følger de bedste praksis, og fordi vægten af denne artikel findes i enhed test emner vil der blive lagt større vægt på at skrive den test, i stedet for at skabe en god leder, højfunktionel tema.,, forberede til enhed test, før kodning, lad os nulstille vores projekt.tory.vi er nødt til at fælde skelettet af temaet så i din wordpress tema fortegnelse, skabe en ny fortegnelse for emnet.min hedder, grundlæggende tema.der tilføjes følgende filer (vi vil fylde dem senere):,,, - fods. folkesundhedsprogrammet, funktioner. folkesundhedsprogrammet, header. folkesundhedsprogrammet, index.php, stil. css, lad os bare slukke den stylesheet, således at wordpress anerkender det tema, og giver os - fra instrumentbrættet.for at gøre det, tilføje følgende kode: /* tema navn: grundlæggende tema tema, uri, version 1.0: beskrivelse: et grundlæggende tema, der anvendes til at påvise, hvordan man skriver enhed prøver for temaer.forfatter: tom mcfarlin forfatter uri: http://tommcfarlin.com kørekort: nationale samlingsregering generelle offentlige kørekort i version 2.0 kørekort uri: http://www.gnu.org/licenses/gpl-2.0.html * /, for at være fuldstændig, gå videre og føje åbning og lukning af folkesundhedsprogrammet mærkater for begyndelsen og afslutningen af deres funktioner fil.dette vil sikre, at vi har grundlaget, der er, når vi begynder at skrive tema funktioner senere i denne artikel, og tilføje en ny fortegnelse, test.her, vi bliver nødt til at lægge wordpress test.,, wordpress test: et hurtigt ord, tidligere i denne serie, jeg gav et link til wordpress test, der ligger på github.selv om disse forsøg fint til at anvende den seneste, automattic opretholdes wordpress test er beliggende i denne omvæltning register. hvis du har en avanceret entreprenør, så vil jeg undersøge disse test, men hvis du er kun lige begyndt med enhed afprøvning – intet problem!jeg er at give alle kildekoden –, herunder wordpress test – i en github register, at du vil være i stand til at downloade, reference og brug for deres egne projekter, når testene er installeret, temaet er registret skal se sådan ud:,, fordi phpunit skal udføres fra kommando linjen, du bliver nødt til at åbne en terminal. møde (eller en kommando hurtig), sejle til undersøgelser, fortegnelse, og , du skal være i stand til at køre dem ved hjælp af følgende kommando (som et eksempel), phpunit test /test_user_capabilities. php, din terminal bør derefter output - sådan noget, - - hvis du ikke er i stand til at udføre de prøvninger, der henvises til i artikel 1 i serien at kontrollere din konfiguration.desuden er deres erfaring, kan variere på grund af deres operativsystem, web - server og lokale maskine konfiguration.hvis du ender med at gøre noget andet, du deler dine notater i bemærkningerne til at hjælpe andre.grundlæggende emne: en enhed, testes wordpress tema, på dette punkt, så lad os gå videre til en aktivere tema i instrumentbrættet.temaet skal aktivere (hvis det ikke er, at du ikke har nogen vilde tegn i din model filer).hvis du forsøger at se tema, det vil naturligvis have en hvid skærm, før skrive test, lad os gå videre og forsyne vores model filer med en lille smule indhold, så vi kan få noget, dukker op på frontend. i, header. php, tilsættes følgende kode:, <!doctype html > < html > < head > < meta - charset = "utf - 8" > < forbindelse rel = "profil" href = "http://gmpg.org/xfn/11" /> < forbindelse rel = "pingback" href = "<?folkesundhedsprogrammet aspektet bloginfo ('pingback_url)?> "/> < afsnit > <?folkesundhedsprogrammet aspektet wp_title ('').> < /afsnit > <?folkesundhedsprogrammet aspektet wp_head();?> < /head > < krop <?folkesundhedsprogrammet aspektet body_class();?> > < div id = "hoved" > det er hovedet.< /div > <!- /header - >,, index.php, tilsættes følgende kode:, <?folkesundhedsprogrammet aspektet get_header();?> < div id = "indhold" > dette er indholdet.< /div > <!- /indhold - > <?folkesundhedsprogrammet aspektet get_footer();?> og i fod. php, tilsættes følgende kode:, < div id = "lille" > det er den fod.< /div > <!- /fod... > < /organ > < /html >, enkelt, jeg ved, men det giver os nok til at arbejde med, når vi begynder at skrive test.gem dit arbejde, revidere tema i browseren, og du skal se det her:,, skriveenhed test, test emne aktivering i din test, fortegnelse, skabe filen, test_basic_theme.php og skodde den fil at se sådan ud: //omfatter funktioner til temaet include_once ("... /funktioner. folkesundhedsprogrammet) klasse test_basic_theme udvider wp_unittestcase {} //ende klasse over, vi er fastlæggelsen af en klasse, der vil blive anvendt til at pakke alle vores tema er enhed prøver. lad os definere, opsætning og metode.den fælde, metode er en funktion, der er fastsat i wordpress test rammer, og vi kan bruge det til at skyde visse funktioner, før de prøver at løbe.for eksempel, da de wordpress undersøgt, de løber mod misligholdelse tema – er det 20. 11.i vores tilfælde ønsker vi at tage prøverne mod vores eget tema. for at gøre det, vi er nødt til at fortælle wordpress til rent faktisk at skifte temaer, før der resten af vores prøver.da dette skal ske, før de test, løb, det skal defineres, opsætning og metode.mening?så lad os skrive vores fælde, metode:, funktion setup() (moder: setup(); switch_theme (grundlæggende tema "," grundlæggende tema ");} //sidste arrangement, igen, lad os udføre vores prøver.vi kan gøre det ved at lade den samme kommando, således som vi gjorde, da vi først fælde den test, phpunit test /test_basic_theme. på, at du har gjort alt rigtigt, skal du se en fiasko, da den prøvningsforløb:, den fejl budskab er klart, men: "ingen test i klasse" test_basic_theme ",".så lad os dæmpe det og skrive den første test for tema.det kan være noget meget enkelt, men husker fra den tidligere post , at vi ikke vil prøve , bare, den optimale sti, men den manglende retning. som sådan er vi nødt til at teste, at det grundlæggende tema er aktiv, og at 20 11 ikke er aktiv.for at gøre det, vi vil bruge den asserttrue metode og den assertfalse metode, og vi gør det i forbindelse med to funktioner.tag et kig på kode nedenfor og opdatere din test dossier i overensstemmelse hermed:, funktion testactivetheme() {$- > asserttrue (grundlæggende tema "= = get_current_theme())} //ende testthemeinitialization funktion testinactivetheme() {$- > assertfalse (20 11" = = get_current_theme())} //ende testinactivetheme endnu en gang udføre test, og du bør se dem løbe green.flot, ikke?,, det er en forholdsvis enkel funktionalitet, så lad os overveje nogle avancerede funktioner, som vores tema kan have, test, der jquery er enqueued, ud af kassen, grundlæggende tema omfatter ikke jquery, så vi kommer til at omfatte det med vores tema.hvis du husker fra den tidligere stillinger, en enhed prøvningsmetodologi er som følger:,, skrive testen, testen (og det vil mislykkes, skrive koden, nødvendigt at foretage prøvningen består testen (og det skal passere, at trin 3 blev gjort korrekt), så lad gør præcis det jquery. først skal vi skrive en test for at fastslå, om jquery er ladt.vi vil bruge den wordpress funktion wp_script_is.eftersom emnet er igennem den normale side livscyklus i en browser, vi bliver nødt til at fortælle wordpress manuelt at lade jquery ved hjælp af do_action funktion., funktion testjqueryisloaded() {$- > assertfalse (wp_script_is ('jquery')); do_action ('wp_enqueue_scripts) $- > asserttrue (wp_script_is (' jquery ')} //ende testjqueryisloaded, før vi går videre, der er noget vigtigt her at bemærke: jeg bryder mig ikke om, at flere påstande i en enkelt funktion, fordi jeg mener, at hver enkelt funktion bør tjene til at teste en enkelt formål; der er dog undtagelser.her er vi nødt til at sikre, at jquery, ikke, ladt, før de ringer, do_action,., - testen, og det vil fejle.så vi er nødt til at tilføje, at kodeksen, functions.php, som vil sikre, at jquery tilføjes til vores tema.for at gøre det, omfatte følgende opgaver i deres funktioner fil:, funktion basic_add_jquery() {wp_enqueue_script ('jquery)} //ende basic_remove_jquery add_action (' wp_enqueue_scripts "," basic_add_jquery); endelig testen, og det bør være grøn.let nok, ikke?test meta - beskrivelser, lad os sige, at vi ønsker at optage et default meta - beskrivelse på hjemmesiden.i det enkleste tilfælde, vil det ikke være andet end en blog beskrivelse.så, efter vores metodologi, der er beskrevet ovenfor, lad os indføre en funktion til at afprøve den meta - beskrivelse snor, som lægges til hoved element svarer til, hvad vi forventer:, funktion testbasicmetadescription() ($meta_description = < meta - navn = "beskrivelse" indhold = ".get_bloginfo ("beskrivelse"). "/> "$- > expectoutputstring ($meta_description, basic_meta_description())} //ende testbasicmetadescription, løb det – vil det mislykkes.bemærk, at jeg ikke bruger den standard, asserttrue,, assertfalse, funktioner – vil der være flere oplysninger om dette om et øjeblik. nu lad os præsentere følgende opgaver, funktioner. folkesundhedsprogrammet, er:, funktion basic_meta_description() (echo '< meta - navn = "beskrivelse" indhold = ".get_bloginfo ("beskrivelse"). "/> «) //ende basic_meta_description add_action ('wp_head "," basic_meta_description), bemærker, at denne funktion kroge i , wp_head handling.med henblik på at skrive den meta - beskrivelse ud i hovedet element, vi skal gentage, snoren snarere end tilbage, snoren. nu konstatere, at der i testen over, vi er ved hjælp af , expectoutputstring,. denne er nyttig, når vi skal vurdere en funktion, der , echo 's, snor (snarere end , tilbage, snor).da, wp_head, agter at vende tilbage til en betydelig mængde af data (dvs. hele hovedet element), vi behøver kun at vurdere meta - beskrivelse er vendt tilbage.og det er derfor snarere end at ringe, do_action ('wp_head'), er jeg ganske enkelt at fungere og evaluering af produktionen mod, hvad jeg forventer det. endnu en gang løb phpunit og prøverne bør alle passere.,, test af alle de ting, vi har tydeligvis kun kradset i overfladen hvad enhed afprøvning kan gøre for vores tema udvikling.der er stadig meget, der kan prøves –, vi har ikke engang taget et kig på afprøvning af loop, forskellige måder at vurdere post formater, eller hvordan til at undersøge bemærkninger. kan du huske den, er, nybegynder er vejledende og de tre artikler omfatter en masse jord. uanset de principper, der er de samme det er et spørgsmål om at sikre, at de programmatically brand den relevante funktion eller foranstaltninger og evaluere sin produktion i både forventede og uventede tilfælde. endelig kan du finde hele projektet sammen med dokumenteret funktioner i denne github register.,, ressourcer, her er en sammenfatning af de ressourcer, der anvendes i denne artikel:,, hvad er enhed test?opførelsen af et målbart stik af, phpunit, den officielle wordpress prøvninger, asserttrue,,,,, wp_script_is assertfalse,,,,,,,,, wp_head do_action,,,,,,, expectoutputstring, grundlæggende tema på github,
de begynder guide til enhed test: bygning testbare temaer
Previous:test