, laravel bdd en je: laten we beginnen,,,,,,,,,, 214, aandelen, 38,,,,,,, de delen van het netwerk, maandag wat in tuts + koers zal dalen tot slechts drie dollar.Niet' dit artikel niet missen, is een reeks laravel bdd genoemd, en u. Laravel bdd en Je eerste kenmerk: het gebruik van een reeks, over over gedrag gedreven ontwikkeling (SAT) de toepassing van de methode van de laravel.De hele stapel bdd kunnen complexe en intimiderend lijkt.Heeft dit ding als ontwikkelaars ook veel. in de reeks,,, ik breng je door mijn gebruik van behat en phpspec krabben laravel toegepaste berekeningsmethode.,,, heeft in het algemeen de bdd veel middelen, maar laravel bepaald materiaal is moeilijk te vinden.Dus, in deze serie, zullen we meer aandacht besteden aan de relevante aspecten van de algemene laravel iets minder, en je kan het lezen, naar veel plaatsen. En gedrag beschrijven, als het gedrag beschrijven, ook bekend als de verhalen te schrijven en specificaties, zullen wij met behulp van een externe aanpak.Dit betekent dat, elke keer als we voor de bouw van een nieuwe functie, en we zullen de gebruikers in het kader van de voorbereiding van de voor het begin van het verhaal.Dit is meestal door de cliënt of het perspectief van de belanghebbenden. , wat verwachten wij dat, als we dit doen?We mogen niet , voordat we schrijven geen code, bijvoorbeeld rode stap is, tenzij we de reconstructie van de huidige code. ,, soms moet een verhaal of de kenmerken van het oplossen van een klein deel (twee woorden die ik het alternatieve gebruik), we zijn aan het werk.Dit betekent vaak dat de phpspec voor te schrijven.Soms in het hele verhaal (op een aanvaardbaar niveau), zou het in een geïntegreerde of eenheid uitgevoerd op het niveau van herhalingen.Dit alles klinkt ingewikkeld, maar het is niet echt.Ik ben een leren leren, dus ik denk dat, zodra we begonnen met het schrijven van een echte code, alles komt er nog meer betekenis, zullen we op vier verschillende niveaus verhalen te schrijven en specificaties: 1.Het grootste deel van de tijd, we accepteren, de functie van de suite zal als onze onaanvaardbaar laag.Zo zullen wij in onze functie van de beschrijving van de kenmerken van onze suite zal zeer vergelijkbaar met hoe we een verhaal schrijven (aanvaarding van het gebruik van automatische browser kader), dat is veel te herhalen. , zolang het verhaal, vanuit het oogpunt van de beschrijving van het gedrag van de cliënt, in hun hoedanigheid van Goedkeuring van het verhaal.We gebruiken voor het testen van onze domcrawler symfony toepassing oplevert.In de reeks, vinden we misschien, we moeten door middel van een werkelijke browser javascript en testen.Door de toename van het aantal nieuwe browsers de aandacht, want we moeten ervoor zorgen dat we het milieu belasting uur testen, de werking van de suite.De functie van de functie, in onze Suite, zullen we in de laravel van toepassing, heel handig.Ten eerste, het kan heel gemakkelijk een onderscheid te maken tussen de omgeving.Ten tweede, niet door de test kit browser zodat we sneller.Als we willen dat de kenmerken van een nieuw, we schrijven onze functie in suite met behat verhaal.,, 3.Integratie, integratie. We testen we de aanvraag niet nodig hebben om toegang te krijgen tot de kern van laravel en gedrag.Integratie. Vaak is een mengsel van behat verhaal en phpspec specificaties.,, 4.Eenheid, eenheid testen, we zullen geschreven worden in de phpspec kleine geïsoleerde eenheid zal een test van de toepassing van de kern.Wij van de entiteit, de waarde van het voorwerp zal zijn van deze reeks specificaties, in de hele reeks van de volgende artikelen, bouwen we een systeem te volgen.Zullen we eerst een beschrijving van de acties van de behat kenmerken door middel van schrijven.De toepassing van interne gedrag beschrijven, zal het gebruik van phpspec. , en deze twee instrumenten zal ons helpen te voelen met die we aan het opbouwen van de kwaliteit van de aanvragen.We zullen voornamelijk op drie niveaus: de functie van schrijven en specificaties functionele integratie en eenheid,,,,,, in onze functie kit, we kruipen in een zonder hoofd van de manier waarop wij de toepassing op commando, dit zal betekenen dat we niet door een browser.Dat maakt het gemakkelijker en laravel, zodat onze functie als we die laag - en. , en, later, als we uiteindelijk een meer complexe interfaces, kan het nodig zijn de test op een javascript dezelfde zijn, kunnen we nog een speciaal die suite.Dit aantal is nog aan de gang is, dus voel je vrij om je voorstel, in de rubriek opmerkingen.,, de installatie, het, dat deze les, ik stel je voor dat je een nieuwe installatie laravel (4.2) en de exploitatie van start.Een beter gebruik van laravel HOMESTEAD is goed, dit is wat ik met mijn schrijven van dit deel van de code, voordat we beginnen aan het echte werk, laten we behat en phpspec te rennen.In de eerste plaats wil ik een beetje schoonmaken en ik begin aan een nieuw project en het schrappen van iets wat ik niet wil laravel:,, gaan rm O programma /test /phpunit.xml bijdrage. Md, als je het schrappen van deze documenten, de actualisering van je , hola, document: "plus de componist, opgenomen.": {"ClassMap": ["aanvragen /order", "de toepassing van programma 's /de verantwoordelijke voor de verwerking", "aanvragen /model", "de toepassing van programma' s /databases /migratie", "de toepassing van programma 's /databases /zaad"]},,, en, natuurlijk, de componist, dollar, nu dumpen geladen. We trekken ons in voorbereiding bdd instrumenten nodig.Gewoon nog een , nodig voor de ontwikkeling van festival, je , componisten, hola,:,, "eisen": {"laravel /kader": "4.2."} {"die nodig zijn voor de ontwikkeling van": "behat /behat": "~ 3", de "phpspec /phpspec": "~ 2", "/": "~ phpunit phpunit 4.1"), en, "waarom trekken we ons phpunit?"Zou je in willen?We zijn niet van plan om in deze reeks goed schrijven phpunit test, maar dat is een handig instrument, en behat.We zullen zien, als we later in dit artikel schrijven we het eerste kenmerk, te actualiseren. En je afhankelijk van na wijziging, de componist, hola, de vernieuwing en de ontwikkeling van een componist:,,, we zijn bijna klaar met de installatie en de oprichting van dingen.Phpspec werkt uitpakken:,, $leverancier /bin /0 0 voorbeeld specificaties phpspec rennen, maar behat MS, moeten doen , snelle werking ervan, de mogelijkheid om de alles:,,, de leverancier /bin /behat + D - de kenmerken ervan, zet je * * * * * * *. Kenmerken van het bestand + D - heb je de functie /leiden de context van klasse hier + F /start /featurecontext.php - jouw definitie, de omschakeling en de haak hier $leverancier /bin /behat geen scène trappen, niet 0m0.14s (12.18mb), de eerste beschikking voorziet in de oprichting van een nieuwe , featurecontext, klas, waar we kunnen schrijven. Wat we nodig hebben, de definitie van kenmerk: de stappen, <?PHP behat, gebruik behat, achtergrond, snippetacceptingcontext; het gebruik van behat, komkommer, knoop, pystringnode; het gebruik van behat, komkommer, knoop, tablenode; /* * * * * * * behat context.* * * * * * * /klasse featurecontext dat snippetacceptingcontext {/* * * * * * * - context.Elke scène heeft zijn eigen achtergrond.Je kan ook door middel van een fabrikant van parameters van de door de behat.yml context.* * * * * * * /openbare functie __construct () {}}, schrijven we de eerste kenmerken, het eerste kenmerk van ons is heel eenvoudig: wij zullen ervoor zorgen dat we de nieuwe installatie van een "laravel ontmoeten we je hebben bereikt." op de voorpagina.Ik zal in een nogal dom geven, stap , geef me een teken, en dit alleen zal laten zien dat we, met de kenmerken van de laravel gemakkelijk is, technisch gezien, zou ik dit als een functie van de kenmerken van de te testen, en omdat het kader, maar ook als een een goedkeuring te testen, want we willen niet een soortgelijke test door de browser instrument dat eventuele verschillen in de resultaten.We houden van onze functie test kit.,, naar het creëren van een , welkom. Kenmerken, dossier en leg het op , kenmerken /functies:kenmerken, functies /welcome.feature kenmerken: welkom /opdrachtgever voor laravel, projectontwikkelaars kunnen ook beginnen met een nieuw project, moet ik ze bij aankomst scenario: de groeten aan de homepage van ontwikkelaars van log ik toegang "," Ik wil je. ", de functionele kenmerken van de functie, in , gids, zal het voor ons beheer van onze suites, later gemakkelijker te maken.We willen niet dat de integratie van de kenmerken van het type, niet nodig laravel langzaam functioneren, zal moeten wachten, kit. , ik hou het netjes, dus ik denk dat we moeten een speciale kenmerken van de in het kader van de functie van onze Suite, kunnen we in de laravel.Je kan blijven overlapping met bestaande , featurecontext, dossier en wijziging van klasse , laravelfeaturecontext,.Voor dit werk, moeten we ook een , behat. Reid, profiel. , aan de wortel van het creëren van een project, en je wordt toegevoegd en luidt als volgt:,, de standaard: suite: functie:: weg [%. Op basis van de functie van de functie]% //laravelfeaturecontext: [], ik denk dat hier yaml is vanzelfsprekend.We zullen de functie van de suite in , kenmerken, gids en lopen ze door de , laravelfeaturecontext,.,, als we proberen op dit punt lopen behat, het zal ons vertellen wat de stappen die nodig zijn voor de uitvoering van de definitie.We kunnen de toevoeging van lege behat , laravelfeaturecontext steun voor de volgende opdracht:,,, $leverancier /bin /behat droog - extra scènes, de leverancier /bin /behat kenmerken: welkom in laravel ontwikkelaars, projectontwikkelaars kunnen ook beginnen met een nieuw project, ik moet naar plaats: de groeten aan op de homepage van de ontwikkelaars vanis verheugd over de kenmerken van de functie van de kenmerken: //6 voor me tekenen.laravelfeaturecontext:: iamloggedin (): definitie van het lijstje schrijven in afwachting van mijn bezoek aan ","laravelfeaturecontext:: ivisit () en dan ga ik je te zien.laravelfeaturecontext:: ishouldsee scenario 's (1) 1 (in 3 stappen (1) in afwachting van skip) 0, 2M0.28s (12.53mb), zie je, nu, het uit de produktie, we zijn klaar om te beginnen met de uitvoering van onze eerste stap: , geef me inloggen,,, phpunit tests geldt dat het schip laravel, kunnen we iets doen dollar - > is ($), geregistreerd in een bepaalde gebruiker, van de gebruikers.Uiteindelijk, en we hopen dat het met de laravel, als we gebruik maken van phpunit, laten we blijven schrijven en we hopen dat we de definitie van code "maatregelen":,, /* * * * * * * * * * * * * * - @ gaf me iamloggedin /openbare functie () {% = USD en gebruikers van nieuwe gebruikers; GT; is ($gebruikers);}, zal dit niet werken, natuurlijk, omdat behat weet niet laravel relevante dingen, maar ik vertel het je op dat moment krijgen en hoe gemakkelijk het is behat laravel, spelen heel goed.,, als je in een kijken, en vond laravel op basis van de bron van de,,, test, test - cases, , dit is de standaard test uit te breiden, zie je laravel, 4.2, alles is al verhuisd naar een trekje.De , applicationtrait, nu verantwoordelijk voor het starten van , toepassing, voorbeeld, de oprichting van een cliënt en geef ons wat http - methoden, zoals de , worden (). , dat het Cool is, vooral omdat het betekent dat we het in de context van onze behat bijna niet nodig is.Hebben we ook de mogelijkheid om naar de , assertionstrait,, maar dit is nog steeds afhankelijk van phpunit.,, toen we de kenmerken, moeten we twee dingen doen.We hebben een , val (), methoden, zoals in het licht van een,,, test, test - cases, , we hebben een , createapplication (), methoden, zoals het in gebreke blijven van laravel, test één.We kunnen een kopie van deze twee methoden en rechtstreeks met een van hen. , maar één ding moet aandacht worden besteed aan: in de code van de , val (), automatisch vóór elke test noemen.Met het oog op de verwezenlijking van behat dezelfde zijn, kunnen we met @ beforescenario, opmerkingen in je .,,,,, laravelfeaturecontext,: instructies voor gebruik, de basis, testen, applicationtrait; /* * * * * * * behat context.* * * * * * * /klasse laravelfeaturecontext snippetacceptingcontext {/* * * * * * * dat verantwoordelijk is voor het verstrekken van een voorbeeld van een aanvraag laravel.* * * * * * * * * * * * * * - het gebruik van applicationtrait; /context.Elke scène heeft zijn eigen achtergrond.Je kan ook door middel van een fabrikant van parameters van de door de behat.yml context.* * * * * * * /openbare functie __construct () {* * * * * * * * * * * * * *} /@ beforescenario openbare functie /setup () {als.De dollar - > app) {% dit > refreshapplication (}) /* * * * * * *); het scheppen van toepassing.* * * * * * * - en - httpkernel @ symfony, httpkernelinterface * /openbare functie createapplication () {% terwijl de echte test omgeving = =; dollar "test"; ook moeten de __dir__. ////////start /beginnen. Php;}, gemakkelijk, kijken of we rennen behat:,, de leverancier /bin /behat kenmerken. Is ingenomen met de opdrachtgever voor: laravel, projectontwikkelaars kunnen ook beginnen met een nieuw project, ik moet naar de groeten van de scenario 's:kenmerken van de functie van de ontwikkelaars van pagina' s //welkom. Kenmerken: 6 - voor iklaravelfeaturecontext:: iamloggedin () Ik toegang ","laravelfeaturecontext:: ivisit () - lijstje:In de definitie van hangende zal ik je zien komen. "# laravelfeaturecontext:: ishouldsee (1 (1) scenario 's in afwachting van stap 3 (1) door middel van 1 1, wacht, skip) 0m0.73s (17.92mb), de eerste stap in de richting van een groene, betekent dit dat we het werk van de installatie.,, dan kunnen we dat , toen ik aankwam, stap.Dit is een heel eenvoudig, we kunnen gebruik maken van , call (), applicationtrait, , methoden, biedt.We hebben een code kunnen:,, /* * * * * * * * * * * * * * de uri @ als ik toegang tot openbare functies ($/() {% dit > Tel. ("'), uri);}, de laatste stap, , dus ik moet zien, een beetje meer nodig, we moeten de twee af.We moeten phpunit beweert, we moeten op zoek naar de domcrawler symfony "u." de tekst.,, kunnen we bereiken dat:,, phpunit_framework_assert als het gebruik van phpunit; gebruik van de onderdelen, domcrawler symfony \\ \\ spoor;.../* * * * * * * "en ik moet zien: de tekst /openbare functie ishouldsee ($tekst) {% reptielen = nieuwe spoor ($- > de klant getresponse () - > > getcontent ()); phpunit:: (1), assertcount crawler > ///////filterxpath (" (), [...].= "{})". "De tekst dollar);}, dit is een code, je zou zijn als je het gebruikt dezelfde phpunit schrijven.De , filterxpath (), deel een beetje in de war, zouden we niet bezorgd, want het is een beetje uit de werkingssfeer van dit document.Geloof me, het werkt, behat reed de laatste keer, het goede nieuws is:,,, de leverancier /bin /behat kenmerken: welkom in laravel ontwikkelaars, projectontwikkelaars kunnen ook beginnen met een nieuw project, ik moet naar de groeten van de scenario 's:kenmerken van de functie van de ontwikkelaars van pagina' S //kenmerken: 6 -ik welkom. Laravelfeaturecontext:: iamloggedin () Ik toegang ","laravelfeaturecontext:: ivisit () en dan ga ik je te zien.laravelfeaturecontext:: ishouldsee scenario 's (1) 1 (door middel van drie (3) door de) 0m0.82s (19.46mb), kenmerken van werk is, en aan de verwachtingen van projectontwikkelaars,, aangekomen. Conclusies van de , integriteit, laravelfeatur,Verbetering van nu eruit moet zien:,, <?PHP behat, gebruik behat, achtergrond, snippetacceptingcontext; het gebruik van behat, komkommer, knoop, pystringnode; het gebruik van behat, komkommer, knoop, tablenode; het gebruik van phpunit_framework_assert zoals phpunit; het gebruik van onderdelen, domcrawler symfony -, spoor, instructies voor gebruik, de basis - test, applicationtrait; /* * * * * * * behat context.* * * * * * * /klasse laravelfeaturecontext snippetacceptingcontext {/* * * * * * * dat verantwoordelijk is voor het verstrekken van een voorbeeld van een aanvraag laravel.* * * * * * * * * * * * * * - het gebruik van applicationtrait; /context.Elke scène heeft zijn eigen achtergrond.Je kan ook door middel van een fabrikant van parameters van de door de behat.yml context.* * * * * * * /openbare functie __construct () {* * * * * * * * * * * * * *} /@ beforescenario openbare functie /setup () {als.De dollar - > app) {% dit > refreshapplication (}) /* * * * * * *); het scheppen van toepassing.* * * * * * * - en - httpkernel @ symfony, httpkernelinterface * /openbare functie createapplication () {% terwijl de echte test omgeving = =; dollar "test"; ook moeten de __dir__. ////////start /beginnen. Php;} /* * * * * * * * * * * * * * - @ gaf me iamloggedin () {/openbare functie met de naam = nieuwe gebruikers; de dollar - > worden (naam);} /* * * * * * * * * * * * * * de uri @ als ik toegang tot openbare functies ($/() {% dit > Tel. ("'), uri);} /* * * * * * *" en ik moeten zien: * * * * * * * /openbare functie ishouldsee ($tekst) {% reptielen = de nieuwe spoor ($- > de klant getresponse () - > > getcontent ());Phpunit:: (1), assertcount crawler > ///////filterxpath ("(), [...].= "{})". "De tekst dollar);}}, hebben we nu een goede basis om de voortzetting van de ontwikkeling van ons in onze nieuwe aanvragen met behulp van laravel bdd.Ik hoop dat ik bewezen heb dat hoe makkelijk je te krijgen, behat laravel spelen heel goed. , stuiten wij op veel verschillende thema 's in dit eerste artikel.Maak je geen zorgen, we nemen alle voor de reeks een dieper inzicht. als je geen vragen of opmerkingen. Laat een bericht achter.
Laravel bdd en je: laten we beginnen
Previous:De voetnoot