glem ikke at dække din klient side!

, glem ikke at dække din klient side!,,,,, 53,,,,,,,,, 20,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' ikke glip af, ved at sikre,  , at ansøgningen er afprøvet, er du i stand til at reducere mængden af insekter, du finder din kode, øge vedligehold af din ansøgning, design - og velstruktureret kode.  , klient side enhed test indeholder forskellige udfordringer end server side test.når det drejer sig om klient side kode, vil du finde dig selv kæmper med særskilt ansøgning logik fra dom logik, som blot strukturerende javascript kode i almindelighed.heldigvis er der en meget stor klient side afprøvning biblioteker, der skal hjælpe teste din kode, etablere målekriterier med prøven dækning samt analysere kompleksiteten af det.,,, hvorfor prøve på alle?, først og fremmest enhed kontrol generelt er en måde at reducere insekter, ved at sikre, at deres ansøgning fungerer, som det skal.udover det, er begreberne prøvekørt udvikling (tdd) og opførsel drevet udvikling (bdd). disse to enhed teststrategier, vil hjælpe dig med at skrive test design din ansøgning, før du skriver din ansøgning logik.ved at skrive test, før du skriver den kode, du giver dig mulighed for at gennemtænke udformning af din ansøgning, sker det, fordi når du skriver prøver, du er dybest set at forsøge at udforme de api til, hvordan du kan interagere med din kode, så man får således bedre indsigt i sin udformning.testing først vil hurtigt vise dig nogen fejl, du har i dit design, fordi du skriver test kode, der hovedsagelig anvender kode, du skriver!,,, derfor er en kode opdagelse proces, vil du lære at tdd - hjælper du, at din kode, som du skriver den.derfor er sammenfattet meget hurtigt som "rød, grøn, refactor".det betyder, du skriver en test, skriver nok kode til testen, ikke først.så, du skriver kode, der gør din test.efter det, du tror på, hvad du skrev bare, og refactor.stille og roligt.,, bdd er en lidt anderledes på tdd - og i højere grad er baseret på virksomhedernes krav og specifikationer,.,,, klient side test, er der mange grunde til, at de burde tester din klient side kode.som nævnt før, og det vil bidrage til at reducere insekter, og hjælpe designer du din ansøgning.klient side test er også vigtig, fordi den giver dig en chance for at teste din front - kode, alene, væk fra din præsentation.med andre ord, en af dets fordele er, at du får lov til at afprøve din javascript kode uden egentlig spinding en ansøgning - server.du bare køre testene og sørge for, at tingene fungere uden at klikke rundt og afprøvning.i mange tilfælde, du behøver ikke engang at have adgang til internettet, så længe din test er fastsat korrekt., med javascript under en så vigtig rolle i moderne web - udvikling, er det vigtigt at lære at teste kode og mindske risikoen for, at deres vej ind i produktionen kode insekter.chefen kan ikke lide det, når det sker, og det bør du heller ikke!faktisk er et godt sted at få begyndt at arbejde med klient side test er at skrive test omkring et insekt - betænkningen.dette vil give dem mulighed for at få praksis skriftlige prøver, når du ikke har et sted at starte fra bunden.,, en anden grund til at teste din klient side kode, er, at når en række test eksisterer og har god dækning over din kode, når du er klar til at gå, og tilføje nye elementer til din kode, du vil være i stand til at tilføje nye træk, at køre din test, og sørge for, at du ikke tilbage og slå enhver eksisterende egenskaber.,,, begyndt, at komme i gang med at klient side test kan være skræmmende, hvis du aldrig har gjort det før.et af de vanskeligste dele om klient side test er at finde ud af den bedste måde at isolere den dom fra din ansøgning er logik.det betyder ofte, du får brug for en form for fremstilling i den dom.den letteste måde at opnå dette på er gennem en klient side ramme som knockout.js, backbone.js, eller angular.js, for blot at nævne et par stykker.,, når der anvendes et bibliotek, som disse, får du synes mindre om, hvordan din side gør i browser og mere om de elementer i deres ansøgning.det er ikke, som det er umuligt at enhed test med helt javascript.i så fald, vil dit liv være meget nemmere, hvis du design kodeksen på en sådan måde, at den dom, let kan holdes ude.,, vælge en prøvning, bibliotek, der er en masse forskellige test biblioteker for at vælge fra, selv om de tre fremmeligste har tendens til at være qunit, mokka, jasmine.,, jasmine og mokka er både fra bdd skole af enhed, afprøvning, mens qunit er bare en enhed inden for sine egne undersøgelser, for resten af denne post, vil vi undersøge ved hjælp af qunit som en hindring for adgangen til klient side test er meget lav.se den nærmere introduktion til qunit for mere information.,, tdd - koden med qunit,, at komme i gang med at qunit er meget enkel.følgende: er alt du behøver:,, <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>QUnit Example</title> <link rel="stylesheet" href="qunit.css"> </head> <body> <div id="qunit"></div> <div id="qunit-fixture"></div> <script src="qunit.js"></script> <script src="../app/yourSourceCode.js"></script> <script src="tests.js"></script> </body> </html>,,For the next few examples, let's assume that we're building a small widget that you input a zip code into a text box and it returns the corresponding city, state, and county values using Geonames. det viser kun et postnummer først, men så snart postnummer er fem bogstaver, det vil indhente oplysninger fra geonames.hvis det er i stand til at finde oplysninger, vil den vise et par områder med de deraf følgende by, stat, amter og oplysninger.vi skal også bruge knockout.js.det første skridt er at skrive en ikke - test.,, at gennem design lidt før den første prøve er skrevet, der sandsynligvis skal være mindst to viewmodels, så det vil være et godt udgangspunkt.for at starte, må vi definere en qunit modul og vores første test:,, modul ("postnummer retriever"); - test ("opfattelse modeller bør findes", function() {ok (formviewmodel, "en viewmodel for vores form bør eksistere"); - (addressviewmodel, "en viewmodel for vores adresse findes");});,, hvis du løber denne test, vil det mislykkes, nu kan du skrive koden til at gøre det forbi:,,,,,, var addressviewmodel = funktion (optioner) {} var formviewmodel = function() {this.address = nye addressviewmodel();};,, du vil se grønne snarere end rød.prøver, som det virker en smule fjollet først, men de er nyttige, fordi de tvinger dig til at tænk i det mindste gennem nogle af de tidlige stadier af deres design.,,,,, - - den næste test, vi vil skrive vil arbejde på, addressviewmodel, funktioner.vi ved fra specifikationen af denne dims, at andre områder bør være gemt i første, indtil oplysningerne er for postnummer.,, modul ("adresse på model"); - test ("bør vise et postnummer by land data, hvis der er fundet", function() (var - adresse = nye addressviewmodel(), okay (!adresse. islocated()); adresse. zip (12345); adresse. by ("foo"); adresse. (""); adresse. county ("bam"); - (adresse. islocated())}), ingen af koden for det er skrevet endnu, men idéen er, at de, der findes, vil blive beregnet som det afkast, rigtigt, kun når zip, by, stat, amt er alle truthy.så, denne test vil naturligvis ikke i første omgang, lad os skrive koden til at gøre det forbi.,, var addressviewmodel = funktion (optioner) {muligheder = muligheder



Previous:
Next Page: