indledning til forsøg med programmerbare

, introduktion til forsøg med programmerbare,,,,, 105,,,,,,,,, 10,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' ikke glip af, vil ingen skib med software.at sørge for, at du slipper en mobil anvendelse af højeste kvalitet kræver meget mere end et menneske drives manuelt kvalitetssikringen.nyt udstyr og drift af systemer er tilgængelige for offentligheden hvert år.det betyder, at der er en stadig større kombination af skærmstørrelse og operativsystem udgaver, som de skal afprøve din mobil anvendelse.ikke blot ville det være yderst tidskrævende, men forsøger at teste din programmerbare anvendelse af manuel kontrol, uden at en hel del af den moderne softwareteknik proces, automatiseret kvalitetssikring test.,,, i verden af i dag, er der mange værktøjer, som kan anvendes til automatisk at teste software, du skriver.nogle af disse værktøjer er fastholdt gennem en åben kilde - model, men der er også   en kerne, der leveres af æble.med hver ny frigivelse af de programmerbare sdk, apple har fortsat med at vise deres engagement i at forbedre de redskaber, der står til rådighed for udviklere at teste kode, de skriver.for de programmerbare entreprenør, der er ny elektronisk afprøvning og interesseret i at komme i gang, apples værktøj er et godt sted at begynde.,,, 1.æblet er nyttige værktøjer, denne forelæsning vil give instruktioner for anvendelse af et instrument, der giver mulighed for automatisk kontrol -, xctest.xctest er æble. afprøvning rammer.prøvning   enhed er den form for automatisk kontrol, som kontrollerer kode på det laveste niveau.du   skrive objective-c kode, der opfordrer metoder fra din "produktion" kode og kontrollere, at kodeksen under afprøvningen gør det, den skal gøre.variabler, der er korrekt?er de tilbage værdi, korrekt?,, test, skrevet med xctest rammer kan være gentagne gange gennemført mod din ansøgning er koden til at hjælpe dig få tillid til, at de skaber et insekt fri vare i den nye kode ændringer er ikke at bryde eksisterende funktioner.,, som standard, hver gang en ny xcode projekt er skabt et godt udgangspunkt for at skrive enhed prøver.dette omfatter tre ting:,, et separat mål for din test, en gruppe til din test klasser, f.eks. test, lad os grave i opbygningen af et six enhed test.en enkelt enhed test er repræsenteret som en enkelt metode i en underklasse af, xctestcase, hvor metoden afkast, ugyldig, ikke tager parametre, og metoden navn begynder med test,.,, - (indhold) testsomething {}, heldigvis xcode er at skabe prøvesager let.med nye xcode projekter, en indledende test er skabt for dig i en separat fil gruppe, hvis navn er suffixed af ord, test,.,,. 2.at din første programmerbare enhed test, jeg har skabt en stikprøve projekt, der kan anvendes som reference ved eksempler i denne forelæsning.download projektet fra github og åbne det i xcode.,, trin 1: skabe test klasse, i stikprøven projekt, kan du finde den gruppe undersøgelser i den mappe, der hedder  , jumblifytests,.,,,,, at skabe din første prøve, højre klik filen gruppe, jumblifytests, og udvælge, nye fil.vælg  , test klasse,   fra  , programmerbare > kilde,   afdeling, og give den ny underklasse et navn.,,,,, typiske navngivningskonvention, er at   navn de test, der er navnet på den tilsvarende klasse under prøvningen, suffixed med prøver.vi tester den  , jumblifyviewcontroller,   klasse,   navn, xctestcase, anvendes  , jumblifyviewcontrollertests,.,,,,, trin 2: fjerne boilerplate kode, på ny, xctestcase, underklasse, vil du se fire metoder.to af disse undersøgelser.kan du identificere, hvor de er?kan du huske, at   testmetode navn begynder med "prøve".,, hvis du ikke finder ud af det, de testmetoder, der er oprettet ved misligholdelse, er testexample, og testperformanceexample,.,, slette begge test, fordi vi kommer til at skrive vores fra bunden.de to andre metoder, der er oprettet, og igennem, er det fra overklassen,  , xctestcase,.de er enestående ved, at  , fælde,   og igennem,   kaldes før og efter hver metode er anvendt.de er nyttige steder at centralisere kode, der skal udføres, før eller efter hver metode kaldet.opgaver   som fælles initialization eller rengøring her.,,, trin 3: forbind din test med din klasse under prøvning, import headerfilen af  , jumblifyviewcontroller,   klasse og tilføje en ejendom i form  , jumblifyviewcontroller,   til, xctestcase, underklasse.,, @ ejendom (nonatomic) jumblifyviewcontroller * vctotest;,, i  , fælde,   metode,   nulstille den ejendom, som vist nedenfor.,, - (indhold) fælde {[super fælde] self.vctotest = [[jumblifyviewcontroller forpl] lokalitet]}, trin 4: skriv en test, er vi nu   skal skrive en test for at teste, reversestring:,   metode i  , jumblifyviewcontroller,   klasse.,, skabe en testmetode, der bruger den instantierede, vctotest,   formål at afprøve  , reversestring: metode.i denne testmetode, skaber vi en  , nsstring, genstand   og sender den til den opfattelse, den tilsynsførendes  , reversestring: metode.   den fælles konvention at give din test en meningsfyldt navn for at gøre det klart, hvad testen er test. - (indhold) testreversestring {nsstring * originalstring = @ "himynameisandy" nsstring * reversedstring = [self.vctotest reversestring: originalstring]}, på dette punkt. vi har ikke gjort noget endnu, fordi vi ikke har afprøvet den  , reversestring:,   metode endnu.det, vi skal gøre, er at sammenligne resultaterne af  , reversestring: metode med, hvad vi forventer af produktionen at være.,,,  , xctassertequalobjects,   funktion er en del af xctest rammer.den xctest ramme   indeholder mange andre metoder til at fremsætte påstande om anvendelse, som f.eks. variabel lighed eller boolean udtryk resultater.i dette tilfælde har vi fastslået, at to genstande, skal være lig.hvis de er prøven passerer, og hvis de ikke er  , prøvning ikke.tag et kig på   æble er dokumentation for en omfattende liste over de påstande, der er fastsat i xctest ramme.,,, - (indhold) testreversestring {nsstring * originalstring = @ "himynameisandy" nsstring * reversedstring = [self.vctotest reversestring: originalstring] nsstring * expectedreversedstring = @ "ydnasiemanymih" xctassertequalobjects (expectedreversedstring, reversedstring, @ "omvendt snor matcher ikke det forventede vende");}, hvis du prøver at udarbejde kodeksen på dette punkt, vil du se en advarsel, når du forsøger at ringe, reversestring:,   fra test.den  , reversestring:,   metode er en privat metode i  , jumblifyviewcontroller,   klasse.det betyder, at andre genstande, kan ikke påberåbe sig denne metode, da det ikke er defineret i headerfilen af  , jumblifyviewcontroller,   klasse.,, mens skriftligt testbare kodeks er et mantra, at mange entreprenører efter, vi vil ikke unødigt ændre vores kode under prøvningen.men hvordan kan vi ringe til den private  , reversestring:,   metode for, jumblifyviewcontroller,   klasse i vores tests?vi kunne tilføje en offentlig definition af  , reversestring:,   metode til headerfilen af  , jumblifyviewcontroller,   klasse, men det slår indkapsling mønster.,, løntrin 5: tilføjelse af en privat kategori, en løsning er at tilføje en privat kategori på, jumblifyviewcontroller,   klasse til at afsløre den, reversestring: metode.vi tilføjer dette udgiftsområde til, xctestcase, afprøvning, hvilket betyder, at det kun er til rådighed i den klasse.   ved at tilføje denne kategori, test vil udarbejde uden advarsler eller fejl,.,, @ grænseflade jumblifyviewcontroller (test) - (nsstring *) reversestring: (nsstring *) stringtoreverse; @ ende, trin 6. - testen, lad os køre vores test for at sikre, at de passerer.der er mange måder at drive enhed prøver for en six anvendelse.jeg er et tastatur genvej junkie, så min mest anvendt teknik til at køre min enhed prøver for min ansøgning er ved at  , command-u,.dette tastatur genvej vil teste for deres ansøgning.du kan også udføre den samme handling ved at udvælge, test,   fra  , produkt, menu.,,, som din eksamen suite vokser, eller, om man vil gennemføre prøvekørt udvikling, vil du opdage, at løbe din test suite kan blive alt for tidskrævende.eller, det ville komme i vejen for din arbejdsgang.en meget nyttig kommando, begravet i xcode er menu, at jeg er forelsket i, command-option-control-u,.denne genvej til en kommando, der løber testen din markør i øjeblikket.når du har din eksamen suite gennemført og afsluttet, bør du altid løbe hele prøvningen suite.ved en individuel test er nyttige som du er ved at skrive en ny test, test eller, når du er debugging - en ikke - test.,, ordre til at løbe en test er suppleret med, command-option-control-g,, som "sidste test.dette kan være hele prøvningen suite eller kun den seneste prøve, du arbejder med.det er også nyttigt, hvis du har styret væk fra, hvad testen, du arbejder på, og du er stadig i færd med at debugging -.,,, trin 7: gennemgang af resultaterne, kan du se dine test resultater i et par steder.et af disse steder er den test, navigatør, til højre.,,,,, en anden mulighed er ved at se på rendestenen af kilde redaktør.,,,,, i nogen af disse to steder, at den grønne diamant med den hvide checkmark vil genudsendelse, at bestemte test.i tilfælde af en ikke - testen, vil du se en rød diamant med et hvidt kors i midten.du vil også gentages denne test., 3.nye i xcode 6, xcode 6 indført to nye spændende tilføjelser til enhed forsøg med programmerbare og os x -, afprøvnings - asynkron funktionalitet og måling af udførelsen af en bestemt del af koden.,, asynkron prøvning, før xcode 6, var der ikke nogen god måde at enhed test asynkron kode.hvis din enhed test, en metode, der indeholdt asynkron logik, kan du ikke kontrollere asynkron logik.testen ville gennemføre inden asynkron logik i den måde, under prøvningen blev henrettet.,, at teste asynkron kode, apple har indført en adi, der gør det muligt at definere en forventning om, at entreprenører, der skal være opfyldt, for at fuldstændiggøre test.   strømmen er således fastlægge en forventning, vente på den forventning, der skal være opfyldt og opfylde forventningerne, når den asynkrone kode er færdig, udfører.se nedenstående eksempel for afklaring.,, - (indhold) testdosomethingthattakessometime {xctestexpectation * completionexpectation = [selv expectationwithdescription: @ "længe metode"]; [self.vctotest dosomethingthattakessometimeswithcompletionblock: ^ (nsstring * resultat) (xctassertequalobjects (@ "resultat", betyder, at @ "resultat ikke var korrekt!"); [completionexpectation opfylde]}]; [selv waitforexpectationswithtimeout: 5, 0 - 0]}, i dette eksempel, vi tester de  , dosomethingthattakessometimeswithcompletionblock,   metode.vi ønsker at hængsel succes eller fiasko for vores test på den værdi, der er tilbage i gennemførelsen af gangen ringede efter metoden i henhold til test, for at gøre dette skal vi definere en forventning ved begyndelsen af testen metode.ved udgangen af den metode, vi venter på den forventning, at være opfyldt.som du kan se, vi kan også bestå i en timeout parameter.,, den faktiske gennemførelse af prøvningen foretages inden afslutningen blok af metoden under prøvningen, som vi også opfylde de forventninger, vi har defineret tidligere.som et resultat, når prøvningen foretages prøvningen venter, indtil den forventning, er opfyldt, eller hvis det ikke timeout udløber, og den forventning, er ikke opfyldt,.,,, præstationsprøve, et supplement til enhed test i xcode 6 er evnen til at måle resultaterne af en del af koden.dette gør det muligt for udviklere for at få indsigt i det specifikke tidspunkt oplysninger i den kodeks, der er blevet testet., med præstationsprøven, du kan besvare spørgsmålet "hvad er den gennemsnitlige tid til gennemførelse af dette stykke kode?"hvis der er et punkt, der er særlig følsom over for ændringer i forhold til den tid, det tager at gennemføre, så kan du bruge præstationsprøve for at måle mængden af tid, det tager at gennemføre.,, du kan også fastlægge en baseline gennemførelsestid.det betyder, at hvis den kodeks, der er blevet testet i væsentlig grad afviger fra baseline, prøvning ikke.xcode vil gentagne gange gennemføre den kode, der er blevet testet og måle dets gennemførelse.til måling af udførelsen af en del af koden, brug, measureblock:,   api - som vist nedenfor.,, - (indhold) testperformancereversestring {nsstring * originalstring = @ "himynameisandy" [selv measureblock: ^ ([self.vctotest reversestring: originalstring]}]}, klik den informationsmæssige budskab, som er.,,,,, eller redigere baseline gennemførelses­periode for test af vaskeevnen.,,,,, konklusion i denne forelæsning, du har lært at bruge xcode at skabe enhed prøvninger for at kontrollere en six anvendelse i en programmatisk og automatisk måde.giv det en chance, enten på et eksisterende basiskode eller noget helt nyt.uanset om du får en klar vilje til enhed, afprøvning eller tilføje et par ting her og der, du er kun at tilføre merværdi til deres projekt ved at skrive mere kontrolleret   software, der er mindre tilbøjelige til at bryde med fremtidige ændringer.enhed test er kun begyndelsen af automatiserede programmeltestning.der er adskillige yderligere lag af prøvning kan du tilføje en six anvendelse.










Previous:
Next Page: