Nieuwe gids: de oprichting van een eenheid kan worden getest in een inleidende gids

test, test: de oprichting van een eenheid van de « plug­in » kan worden getest,,,,,,,,,,,, deel 3,,,,,,, het netwerk van delen van maandag wat in tuts + koers zal dalen tot slechts 3 dollar.Niet' niet missen.,, op het eerste deel van de methoden voor het testen van hoog niveau, we zien in de zaak waarom een gunstig is voor ons aan het begin van de wordpress projecten te doen.We hebben tijd nodig om de installatie van phpunit en wordpress test kan worden begonnen met de oprichting van een van onze eerste test van de « plug­in ».,, in deze laatste artikelen, moeten we de definitie van een eenheid van methoden voor het testen van het begin zal integreren in ons werk gaan een volledig functionele (hoewel de « plug­in », heel eenvoudig) Er is ook een kleine test om ervoor te zorgen dat het geheel, zoals verwacht, een eenheid.,, de methoden voor het testen van. Als de test, zijn er twee mogelijkheden voor:,,, dat de test, dan schrijf code laten testen door de,, code, en de voorbereiding van de test door de,,,, in mijn ervaring, de eerste methode is beter.Natuurlijk, dat al bestaat in een in het kader van de toepassing niet mogelijk is, maar als je uit de grond beginnen... We zijn... Dit is een betere manier, en dat is de reden waarom het: als je schrijft, een aanvraag in, je weet hoe het werkt.Dus, de voorbereiding van de test is erg moeilijk, als je weet hoe het moet zijn, dan zie je hoe het is,.Doe je testen, omvat niet alleen de procedures moeten werken, maar het is ook een vorm van wat de weergave van de documenten van de functies van, en uiteindelijk tot een mislukking van de uitvoering van de functie is niet, zoals het zou moeten - en dit in gedachten, we gebruik zullen maken van deze eenvoudige methode: het schrijven van een een test en rennen.Dit zou falen. Schrijf de code, een poging om de,,,, als test. Test, we blijven in het kader van een functie; of we een herhaling van de procedure, tot het voorbij is. En, en, tot slot, de herziening van de « plug­in », en ons, als ze door Op de website van Google of Twitter om een een speciaal welkom informatie, op basis van de toeristen.We zullen ook op een dergelijke manier geschreven, zal het gemakkelijker zijn om de uitbreiding met andere diensten, als je dit wil doen in de toekomst.,,, de oprichting van een test - en op dit punt, het is tijd om te beginnen met een code te schrijven; echter, in tegenstelling tot de meeste projecten niet te springen, we gaan wordpress specifieke code is.Integendeel, wij moeten onze eenheid testen.Als je de catalogus van de « plug­in » op basis van de structuur van de in de eerste, onze gemeenschappelijke of hoe we het na de toewijzing in de github, dan moet je er een in je dossier, hello_reader_tests.php, wordpress /test. Test.Je hoeft niet te worden georganiseerd, natuurlijk, maar het zal ons helpen met de voortgang van het project.,, laten we uitzoeken, require_once eenheid testen, (": ///////« plug­in ».'/library/loader.php'); uitbreiding van hello_reader_tests wp_unittestcase {} ///////- categorie, En nu probeert te testen, met gebruik van terminal PHP eenheid.Als je in de werking van de installatie van de lokale eenheid waarbij PHP, je kan de invoer van:,,, $/toepassing /fusies /bin /PHP /php5.3.6/bin/phpunit. /hello_reader_tests. Php,,, op dit punt, moet je zien, een mislukking:,, het is goed.Dit betekent dat de phpunit is geïnstalleerd en operationeel kader van de test, je wordpress is klaar om te gaan.De test niet, omdat we geen schrijven geen test.Laten we beginnen met de,,, onze eerste test, ten eerste, we schrijven een test, om ervoor te zorgen dat we de concretisering van de « plug­in » gestart, en maak je klaar voor de test.Weet je nog in het eerste artikel van onze lezers voor opslag, onder verwijzing naar de voorbeelden in PGB 'Hallo, $van de variabelen, de generator.Dit is hoe we het gebruik van testen kader toegang tot de aanleg.Laten we de vernieuwing van onze eenheid is de test:,, de aandacht in de ruimte. En ik zal uit de code opmerkingen maar volledig opmerkingen « plug­in », wordt de test in github beschikbaar zijn, require_once (',. ///////« plug­in ».'/library/loader.php'); uitbreiding van de particuliere dollar hello_reader_tests wp_unittestcase {- setup () {ouders. Functie:: val (); de dollar - > - = dollar'hello-reader globale []; ///////einde van een functie testplugininitialization (}) {% dit > assertfalse (lucht = = = = = = = - - $> aan het einde van testplugininitialization}); //////////////) aan het einde van deze categorie, en hebben we, in het licht van plug - in zodat we kunnen in We testen de eenheid gegeven.We gebruiken, de installatie, het stelen van de referentie - methode, voor de variabelen.Wijst er echter op dat we in een andere functie, en de testplugininitialization,.Dit is ons in de functie van een referentie voor verificatie, ongeldig is. En als je weer te testen, moet je nu door middel van test - en de terminal eruit moet zien:,,,, en een belangrijk nieuws:, aandacht voor de interne functies boven ons een duidelijk doel: na te gaan of de « plug­in » is de juiste gestart.De naam van de functie van het zeer duidelijk, met inbegrip van een afzonderlijke verklaring verklaring.Dit is een goede manier om de simulatie van de resterende test ons, vooral omdat het makkelijk te vinden zijn fout, wanneer ze zich voordoen.Zo denken: als je een andere verklaring verklaring in een enkele functie, het zal moeilijk zijn vast te stellen dat de verklaring is niet de eerste, en nu hebben we het schrijven van eenheid de test, die de eenheid getest, en de beoordeling van de wijze waarop zij het door of niet, laten we beginnen met de uitvoering van de functie van de « plug­in ».Ten eerste, moeten we de inhoud van een filter, omdat we de inhoud van de tekst te worden toegevoegd.De volgende methode, de definitie van voor dit document, laten we eerst schrijf test.,, deze bijzondere test om te zien of we het eerste deel van de aanvullende posten voor een bepaalde groep tekst:,, de functie testaddwelcomemessage () {% dit > dat de inhoud (test "dollar - > « > add_welcome_message (" het voorbeeld van de inhoud van de artikelen.Deze simulatie terug zou zien, je blog. ")," add_welcome_message () aanvullende welkom, laat een bericht achter de inhoud van de artikelen. "); ///////testaddwelcomemessage) aan het einde van de test, als je niet precies hetzelfde, het niet eens - - integendeel, phpunit terug een fatale fout, omdat deze methode niet in de steek te definiëren.Dus laten we zeggen dat, nu.Aanpassing van de « plug­in » ziet er als volgt uit:,, hello_reader {functie __construct () {add_filter ("the_content array (& dollar" add_welcome_message "); aan het einde van de functie van de fabrikant) //////////////add_welcome_message ($inhoud) {}) aan het einde van het add_welcome_message) ///////, probeer nu testen.De testen niet spelen, maar moet je zien met een duidelijke boodschap, waarom test falen:,, 1) hello_reader_tests:: testaddwelcomemessage add_welcome_message () extra welkom, laat een bericht achter de inhoud van de post.Niet dat de wedstrijd naar "test", en derhalve in overeenstemming is met onze methoden, moeten we de test.Om dit te bereiken, moeten we ervoor zorgen dat de inhoud van de tekst na bevat, in dit geval "test", zodat het door.Dus laten we dit proberen.Actualisering van de relevante modules voor de inhoud van de aanvullende verplichtingen van openbare functies:,, add_welcome_message ($inhoud) {terugkeer "onderzoek".Aan het einde van $inhoud;) ///////add_welcome_message, keer op keer, we testen, alleen kijken, niet.Als u merkt dat u onze test, dit is omdat het de inhoud van ons willen zien, is gelijk aan de inhoud van de tests ",", string.Integendeel, we moeten ervoor zorgen dat de inhoud van het begin van het touw op.Dit betekent dat we onze test moet worden bijgewerkt.Gelukkig is er een assertcontains phpunit functie.Laten we opnieuw onze code om gebruik te maken van het functioneren van testaddwelcomemessage:,, () {% dit > assertcontains ("de inhoud van de examens" dollar - > « > add_welcome_message ("dat het voorbeeld van de inhoud van de artikelen.Deze simulatie terug zou zien, je blog. ")," add_welcome_message () aanvullende welkom, laat een bericht achter de inhoud van de artikelen. "); aan het einde van testaddwelcomemessage) ///////en, nogmaals, te testen, moet je zien, nu de test.Geweldig!Nu hebben we nodig voor de uit - en Google uit gebruikers van aangepaste informatie over ons schrijven, Twitter gebruiker, er zijn heel veel verschillende manieren, we kunnen controleren hoe bij de gebruiker van een blz.Soms kunnen we het bestuderen van de waarde, _get dollar, installatie, soms kunnen we ondervragen, _server dollar, installatie, of wij kunnen soms controleren de sessies.In dit voorbeeld, gaan we op zoek naar "Twitter. COM" kan worden gevonden in _server dollar ['http_request].Ik zei dat ze wil dat jullie kunnen ons volgen de code te doen, dus. En, in het algemeen, add_welcome_message, moet het verzoek van Twitter en de boodschap op de juiste.Omdat we in het testen van elke functie in een bedrijf, we schrijven een functie kan worden beoordeeld, indien het verzoek afkomstig is van de Twitter.Dus, we schrijven een nieuwe test: in de «:,,,, openbare taken aan het einde van is_from_twitter () {} ///////is_from_twitter, dat tijdens de test:,, de functie testiscomingfromtwitter () {% _server'http_referer "[] = 'http: //Twitter. COM"; de dollar - > asserttrue ($dit *; « > is_from_twitter () (), "is_from_twitter zal als referentie is terug waar de website Twitter.") ///////testiscomingfromtwitter;}, is het duidelijk dat we aan het einde, is bedrog, http_referer, waarde, maar voor dit voorbeeld is goed.Dit is nog steeds een beetje: tests, het zou mislukken, dus moeten we de uitvoering van de « plug­in », de functie van openbare functies:, door middel van is_from_twitter () {terug in deze code ($_server] ['http_referer "Twitter. COM" > 0; aan het einde van het vervoer) ///////is_from_twitter, getest, moet nu worden goedgekeurd de te testen.Maar wacht even, we moeten het afmaken.Laten we een test doen om na te gaan of deze functie niet aanbevolen, niet van Twitter.,, testisnotcomingfromtwitter () {///////de functie van het bedrog als het doel van de test http_referer en z 'n blog _server dollar'http_referer "[] =' http: //Facebook. COM"; de dollar - > assertfalse ($- *; « > is_from_twitter () (), "is_from_twitter zal als referentie is terug waar de website Twitter."); aan het einde van testisnotcomingfromtwitter) ///////, ons op de hoogte, vernieuwing, http_referer, we zijn veranderd, asserttrue assertfalse,,,.Laat alle andere dingen zijn goed, testen, moeten ze door dezelfde Google.,,, - voorzien van aangepaste informatie zal hetzelfde nodig, we doen het op Twitter, is na de http_referer, en dan terug naar de functie van de waar of onwaar.Dus, om te voorkomen dat klinkt overbodig zou zijn, zou ik al het mogelijke doen om dit deel van de eenvoud.Dezelfde maatregelen moeten in overeenstemming zijn met de Twitter.,, in de eerste plaats vinden, we de aanvullende functie van openbare functies in:,, is_from_google () {} ///////voorbij is, en we is_from_google en het opstellen van een test:,, functionele testiscomingfromgoogle () {% _server'http_referer "[] = 'http: //Google. COM"; de dollar - > asserttrue ($- > « > is_from_google () (), "is_from_google terug waar als een verwijzing naar de website is Google."); aan het einde van de test) ///////testiscomingfromgoogle,, want het is nu zal leiden tot een mislukking.Dus, laten we de uitvoering van, is_from_google (). Functie:,, openbare functies is_from_google () {terug in deze code ($_server ['http_referer] "Google. COM" > 0; aan het einde van is_from_twitter) ///////, en nu is de test.Maar, nogmaals, we hebben een volledige test als functie van de schuld laten we schrijven niet terug waar gebruikers uit andere plaatsen, is de functie van testisnotcomingfromgoogle:,, () {///////bedrog als het doel van de test http_referer en z 'n blog _server dollar'http_referer "[] =' http: //Facebook. COM" dollar -; > assertfalse ($- > « > is_from_google () (), "is_from_google terug waar als een verwijzing naar de website is Google."); aan het einde van de laatste testisnotcomingfromgoogle) ///////,,, ren voor je test.Laat alles goed is, moet je er zes door de test, en zijn allemaal samen, op dit punt, we hebben alles wat we nodig hebben voor onze klanten te tonen op verheugd over de informatie.Het enige is, moeten we de wederopbouw van onze eerste test, test. "Nu, we hebben het nodig voor de volgende informatie:,,, wanneer de gebruiker de testen van Twitter, zouden we zeggen:" is verheugd over de Twitter. "Als de gebruikers van Google, zullen we zeggen: "is verheugd over de Google!",, als de gebruikers uit andere plaatsen waar we niet op iets, dus laten we het verwijderen, en we creëren voor de test, testaddwelcomemessage, zullen nog drie nieuwe testen.,, in de eerste plaats, zullen we nog een test Twitter is verheugd over de informatie in de «.,,, we zullen verminderen, add_welcome_message, deze openbare functies:,, add_welcome_message ($inhoud) {terug aan het einde van $inhoud;} ///////add_welcome_message, zullen we nog een tweet test, de eerste, de functie, het testdisplaytwitterwelcome () {///////_server kwaad te maken voor Twitter $'http_referer "[] =" HTTP://Twitter http_referer. COM. - $assertcontains ("> is ingenomen met de Twitter."De dollar - > « > add_welcome_message ("dat het voorbeeld van de inhoud van de artikelen.Deze simulatie terug zou zien, je blog. ")," add_welcome_message () aanvullende welkom, laat een bericht achter de inhoud van de artikelen. "); ///////testdisplaytwitterwelcome) aan, dat op dit punt, dat is een oude hoed, hè?Het testen zal mislukken.De uitvoering van, add_welcome_message, ziet er als volgt uit:,, openbare functies add_welcome_message ($inhoud) {als ($- > is_from_twitter ()) {% = "is ingenomen met de inhoud van de Twitter."De inhoud van de dollar; de inhoud als naar) //////////////add_welcome_message;} aan het einde, en het nog een keer doen, het zal voorbij gaan.De volgende is Google - test:,, de functie testdisplaygooglewelcome () {///////_server dollar wat Google'http_referer "[] =" HTTP://http_referer Google. COM "; de dollar - > assertcontains (" welkom "Google.De dollar - > « > add_welcome_message ("dat het voorbeeld van de inhoud van de artikelen.Deze simulatie terug zou zien, je blog. ")," add_welcome_message () aanvullende welkom, laat een bericht achter de inhoud van de artikelen. "); aan het einde van testdisplaygooglewelcome) ///////, testen, en het mislukt, dan add_welcome_message bijgewerkt, bevat, in de « plug­in » controleren De toegankelijkheid van wat we eerder schreef:,, openbare functies add_welcome_message ($inhoud) {als ($- > is_from_twitter ()) {% =" is ingenomen met de inhoud van de Twitter. "De inhoud van de dollar;} anders als ($- > is_from_google ()) {% = "is ingenomen met de inhoud van Google.De inhoud van de dollar; de inhoud als naar) //////////////add_welcome_message;}, aan het einde, op dit punt, moet je er een volwaardige plug - ins die zeven door de eenheid getest.Conclusie van,,,,, zoals je kunt zien, de eenheid getest, en de ontwikkeling van de horizontale maar kan betalen extra duidelijk in de handhaving van het organiseren van tests, en kan de code.Als je van toepassing blijven groeien, voortdurend testen om na te gaan of je projecten, zoals verwacht voor een geest.Natuurlijk, dit is slechts een klein voorbeeld, hoe de eenheid getest.De toepassing van deze praktijken kan betalen voor grotere en /of complexe projecten.,, eindelijk, vind je deze plug, wordpress test, test - en hoe de lezers in op github, volledige toelichting.

Failing Tests
Passing Tests



Previous:
Next Page: