Oktobro 11, 2022

Kiel Fari Angulan Unuan Testadon kaj Kial?

Testi ĉiun funkcion (ankaŭ konatan kiel unuo) estas kritika por garantii ke ĉiu funkcio en la programo funkcias kiel planite. En testado, taksi apartan kapablon kontraŭ tuta programo fin-al-fina estas sufiĉe malsama. Unuo-testado venas en ludo ĉe ĉi tiu punkto.

Angular estas malfermfonta, TypeScript-bazita JavaScript-kadro. Ĉar JavaScript estas potenca programlingvo uzata por konstrui interretajn programojn, estas esenca kompreni kiel fari unutestojn en JavaScript. Ĉi tiu artikolo esploros kiel fari ĉi tiujn provojn, kion uzi kaj kial.

Kio estas Angulo?

Modernaj retejoj uzas la komputilan lingvon JavaScript (JS), kiu ofertas multajn interagajn elementojn kun kiuj konsumantoj konas. Retaj programistoj ofte dependas de klientflankaj JavaScript-kadroj por funkcieco kaj por konservi retejojn kaj interretajn aktivaĵojn ĝuste funkcii.

Angular estas teknologio, kiu provizas la rimedojn por evoluigi TTT-aplikaĵon, helpas en la dezajno kaj organizas la suban kodon. En 2010, Google publikigis la JavaScript-kadron konatan kiel AngularJS. Ĝi enhavas funkcion kiu faciligas la kreadon de programistoj de riĉaj, unupaĝaj programoj. La nomo de postaj versioj de AngularJS estas mallongigita al Angular.

Signifaj organizoj uzis Angular por konstrui aplikojn, pluraj el kiuj fariĝis ĉefaj markoj. Kiel-

  • gmail
  • Jutuba televido
  • paypal
  • Wix WebApps
  • Microsoft retejo
  • Suprema
  • freelancer

Kial vi devus testi Angular Aps?

Validigi Angulan kodbazan funkcion laŭ funkcio estas la plej efika aliro por plibonigi kodkvaliton, havi malpli da difektoj en produktado kaj malpli morta kodo, minimumigi prizorgajn kostojn kaj plenumi pli rapidan refaktorigon kaj eĉ ĝisdatigojn sen nekonsekvencoj damaĝantaj la tutan sistemon.

Komence, ĝi povas ŝajni malrapida, sed ĝi pagas longtempe. Dum la disvolva procezo, cimoj estas identigitaj kaj korektitaj. La proceduro por senararigado estas plibonigita. Se aparta testo malsukcesas, estas simple determini precize kio ne funkcias kiel planite. Kaj dum test-movita evoluo kaj unuotestado, precipe, ŝajnas pli komplikaj, ekspluati novan testaj aŭtomatigaj platformoj kaj plej bonaj praktikoj povas signife simpligi kaj aŭtomatigi la tutan procezon.

Kio estas unutestado?

Unuotestado estas unu el la metodoj de aŭtomata testado. Unuaj testoj ekzercas etajn partojn de aplikaĵo en totala izoliteco kaj komparas sian faktan konduton kun la celita konduto. La frazo "plena izoliteco" rilatas al la fakto, ke unutestaj angulaj aplikoj ne estas ligitaj al eksteraj dependecoj kiel datumbazoj, la dosiersistemo aŭ HTTP-servoj. Ĉi tio ebligas unutestojn esti pli fidindaj kaj rapidaj ĉar ili ne plu malsukcesos pro malfacilaĵoj kun eksteraj servoj.

Unuotestoj estas produktitaj uzante kodon. Vi povas pensi pri unutestoj kiel malgrandaj programoj, kiuj ekzercas vian aplikaĵon interagante kun malgrandaj sekcioj. Ĉiu unuotesto similas al priskribado aŭ ilustrado de kiel unuo funkcias en aparta cirkonstanco. Farante la serion de testoj, programistoj povas ricevi tujan retrosciigon post modifo de kodbazo.

Kial vi faru Angula unuotestadon?

Tipe, programistoj unue konstruas unutestojn, sekvitajn de la fakta programkodo. Test-movita evoluo priskribas ĉi tiun metodaron (TDD). En TDD, la postuloj estas konvertitaj en apartajn provojn, kaj la programo poste estas plibonigita por pasigi la novajn angultestojn. Unuaj provoj permesas ŝanĝi kodon sen influi la funkciadon de aliaj unuoj aŭ la programon entute. Ĉi tio ŝparas rimedojn farante pli facile por programistoj identigi misfunkciadojn en ĉi tiu etapo.

Plie, ene de unutestmedioj, la moduloj de produkto iĝas apartigitaj unu de la alia kaj havas sian respondecon. En ĉi tiu cirkonstanco, testado estas pli fidinda ĉar ili estas faritaj en limigita medio. Pro ĉi tiu stabileco, la kodo fariĝas fidinda ankaŭ.

Kune kun la faktoj menciitaj supre, ni ekzamenu la multajn avantaĝojn de unutestado.

  • Unuaj testoj helpas trovi kaj solvi problemojn pli frue. Organizoj kiuj efektivigas unutestadon en sian evoluprocezon kaj komencas testi kiel eble plej frue en la vivdaŭro de la programaro povas trovi kaj ripari problemojn pli rapide.
  • Via unutesta serio funkcias kiel sekureca reto por programistoj. Plena serio de unutestoj povas funkcii kiel sekureca reto por programistoj. Periode plenumante la testojn, ili povas certigi, ke iliaj lastatempaj ŝanĝoj al la kodo nenion damaĝis. Alivorte, unutestoj helpas eviti regresojn.
  • Unuaj testoj povas helpi plibonigi la kvaliton de kodo. Ĉi tiu ero nature sekvas el la antaŭa artikolo. Ĉar unutestoj funkcias kiel sekurecreto, programistoj estas pli memcertaj kiam modifas kodon. Ili povas restrukturi la kodon sen zorgi pri rompi ion ajn, plibonigante la ĝeneralan kvaliton de la kodbazo.
  • Unutestado povas helpi plibonigi aplikaĵarkitekturon. Aldoni unutestojn al kodbazo ofte indikas altkvalitan aplikaĵdezajnon. Tial, la bezono produkti testeblan kodon povas instigi plibonigitan dezajnon. Jen kial TDD (test-movita evoluo) estas tiel efika.
  • Unuaj testoj povas esti utiligitaj kiel dokumentado. Unutestoj donas ekzemplojn de kiel uzi la kodon testatan. Sekve, vi ankaŭ povas pensi pri ili kiel plenumebla dokumentaro aŭ specifoj.
  • Identigu kod-odorojn en via kodbazo. Havi malfacilecon generi unutestojn por speciala peco de kodo indikas kodoorojn, kiel ekzemple tro komplikaj rutinoj. Se la simpleco kun kiu unutestoj povas esti aldonitaj al kodbazo estas pozitiva indikilo, la inverso ankaŭ estas vera.

Kiel Fari Unuan Testadon en Angulaj & Testi Angulajn Komponentojn

Dum desegnado de testoj por komponantoj, certigu, ke ĉiuj ĉi tiuj kondutoj estas konsiderataj.

  • En la HTML DOM-strukturo, ili povas bildigi ŝablonojn.
  • Ili povas ricevi datumojn de siaj gepatraj komponantoj per Enigaĵoj kaj eligo-datumoj per Eligoj.
  • Ili povas respondi al pluraj specoj de situacioj.
  • Ili povas komuniki kun podetalistoj aŭ servoj.
  • Ili povas ligi datumojn kaj igi ĝin redakteblaj por la uzanto.

Agordu TestBed

Angular ofertas TestBed por testado, kiu establas medion kie komponantoj kaj servoj povas esti facile validigitaj kaj kontrolitaj. Ĝi estas kiel norma Angula modulo, kaj ĉiuj deklaritaj funkcioj estas kompilitaj. Uzu la metodon beforeEach por eviti duobligi kodon en ĉiu testo.

Provante la DOM

Plejofte, komponentfunkcioj efektivigas logikon reflektantan la ŝablonon. Uzante la demandojn kaj queryAll de DebugElement-metodojn, ni povas akiri aliron al la DOM-arbo:

  • la demando liveras la unuan elementon, kiu konvenas al kriterio.
  • queryAll liveras tabelon de kongruaj enskriboj 

Ekfunkciigo de evento-traktiloj

Estas du ebloj por provoj. La unua opcio estas ekzekuti la funkcion rekte, dum la dua opcio, kiu estas rekomendita, estas efektivigi klakon sur tiu butono. Uzante la posedaĵon pri ellasilo-okazaĵa pritraktilo de DebugElement faciligas tion fari. Ĝi enhavas du argumentojn: la nomo de la evento kaj ĝiaj trajtoj.

Iloj por angula unuotestado

Jasmeno: La kadro de testado de Jasmine povas esti uzata por testi JavaScript-kodon. Specife, ĝi estas kadro por BDD (Behavior-Driven Development). Pro ĝia simpla sintakso kaj la fakto ke ĝi ne bezonas DOM aŭ dependas de aliaj kadroj, Jasmine estas facile uzebla tuj el la skatolo. Jasmeno estas la defaŭlta testa kadro, kiun rekomendas la Angular-manlibro. La Angula CLI aŭtomate agordas Jasmine, do vi ne bezonas instali ĝin individue.

karmo: La defaŭlta testkadro de Angular estas Karma. La teamo de AngularJs evoluigis ĝin ĉar ili havis malfacilaĵojn Angula testado uzante la disponeblajn ilojn tiutempe. Karma ebligas al vi testi viajn programojn sur realaj retumiloj kaj aparatoj, kiel tabeloj kaj poŝtelefonoj. Ĝi ankaŭ estas tre adaptebla ĉar ĝi estas kongrua kun aliaj testaj kadroj. La defaŭlta kadro de Angular estas Jasmine (kiun ni diskutos en momento), sed vi povas ŝanĝi ĝin per Mocha, QUnit aŭ aliaj. Krome, integriĝo kun kontinuaj integrigaj sistemoj kiel Travis, Jenkins, CircleCI kaj Semaphore estas simpla.

Protraktilo: Protractor estas fin-al-fina testa instrumento por Angular-apoj. Ĝi efektivigas viajn testojn en reala retumilo kaj reproduktas la interagadon de la uzanto kun via aplikaĵo.

Angula CLI: La Angula CLI (Komandlinia Interfaco) estas ilo, kiu povas esti uzata por konstrui, disvolvi kaj testi Angulajn aplikaĵojn.

Angula Unua Testado Best Praktikoj

Jen kelkaj aferoj por sekvi dum elfarado de angula unuotestado:

  • Testoj devus esti rapidaj kaj simplaj, necesigante testkazojn esti efektivigitaj pli rapide ĉar tio plenumas la celon de unutestado. Se la angulaj testkazoj estas tro malviglaj, programistoj ne efektivigos ilin tiel ofte kiel ili devus—cetere, ju pli simplaj la unutestkazoj, des pli precizaj la testtrovoj.
  • Testkazoj ne devus ripeti la logikon de la efektivigo.
  • Testtrovoj estos nek antaŭvideblaj nek precizaj sen eksponiĝo al naturaj produktadaj agordoj (realaj, funkciaj aparatoj). La konduto de testkazoj devus esti determinisma tiel longe kiel ilia kodo restas konstanta. Por ke provoj restu determinismaj, personaro pri kvalito-certigo devas fari ilin sur realaj retumiloj kaj aparatoj, ne emuliloj kaj simuliloj.
  • Konstante faru unutestojn en sandboxed medio, forigante ajnajn eksterajn dependecojn.
  • Uzu spionojn de la Jasmine-kadro dum testado de servodependecoj.
  • Dum testado de komponentoj, estas preferinde aliri la DOM uzante debugElement (kiu disponigas abstraktadon por la primara rultempa medio) prefere ol la indiĝena elemento.
  • Se via programo estas sur servilo, uzu By.css anstataŭ queryselector ĉar ĉi-lasta estas nur por retumilo.
  • Certigu, ke almenaŭ 80 procentoj de la kodo estas kovritaj.
  • Efektivigu efikan nomskemon por la testkazoj

konkludo

Unutestado estas necesa formo de aŭtomatigita testado; iuj fakuloj eĉ argumentas, ke ĝi estas la plej esenca. Ĉi tio signifas ĉiujn programlingvojn kaj platformojn, inkluzive de JavaScript. Ĉu vi uzas JavaScript en la backend, front-end kadro, aŭ skribante vanila JavaScript, unutestado estas postulata.

Estas pluraj iloj disponeblaj por ĉiu speco de testado. Elektu aparaton, kiel HeadSpin, kiu disponigas la plej multajn avantaĝojn kaj plenumas vian buĝeton por ĉiu speco de testado.

Pri la aŭtoro 

Kyrie Mattos


{"email": "Retpoŝta adreso nevalida", "url": "Reteja adreso nevalida", "required": "Bezonata kampo mankas"}