AngularJS Unit Testing: Karma Jasmine Tutorial

Jednou z nejskvฤ›lejลกรญch vlastnostรญ Angular.JS je Testovรกnรญ aspekt. Kdyลพ vรฝvojรกล™i z Google vyvรญjeli AngularJS, mฤ›li na pamฤ›ti testovรกnรญ a ujistili se, ลพe celรฝ framework AngularJS je testovatelnรฝ.

V AngularJS se testovรกnรญ normรกlnฤ› provรกdรญ pomocรญ Karma (rรกmce). Testovรกnรญ Angular JS lze provรกdฤ›t bez Karmy, ale rรกmec Karma mรก tak skvฤ›lou funkcionalitu pro testovรกnรญ kรณdu AngularJS, ลพe mรก smysl tento rรกmec pouลพรญvat.

  • V AngularJS mลฏลพeme provรกdฤ›t Testovรกnรญ jednotek zvlรกลกลฅ pro kontrolory a smฤ›rnice.
  • Mลฏลพeme takรฉ provรฉst end-end testovรกnรญ AngularJS, coลพ je testovรกnรญ z pohledu uลพivatele.

รšvod a instalace rรกmce Karma

Karma je a testovacรญ automatizaฤnรญ nรกstroj vytvoล™enรฝ tรฝmem Angular JS ve spoleฤnosti Google. Prvnรญm krokem pro pouลพitรญ Karmy je instalace Karmy. Karma se instaluje pล™es npm (coลพ je sprรกvce balรญฤkลฏ pouลพรญvanรฝ pro snadnou instalaci modulลฏ na lokรกlnรญ poฤรญtaฤ).

Instalace karmy

Instalace Karmy pล™es npm se provรกdรญ ve dvou krocรญch.

Krok 1) Spusลฅte nรญลพe uvedenรฝ ล™รกdek z pล™รญkazovรฉho ล™รกdku

npm install karma karma-chrome-launcher karma-jasmine

pล™iฤemลพ

  1. npm je nรกstroj pล™รญkazovรฉho ล™รกdku pro sprรกvce balรญฤkลฏ uzlลฏ pouลพรญvanรฝ k instalaci vlastnรญch modulลฏ na libovolnรฝ poฤรญtaฤ.
  2. Parametr install dรกvรก obsluลพnรฉmu programu pล™รญkazovรฉho ล™รกdku npm pokyn, ลพe je vyลพadovรกna instalace.
  3. V pล™รญkazovรฉm ล™รกdku jsou specifikovรกny 3 knihovny, kterรฉ jsou nutnรฉ pro prรกci s karmou.
    • karma je zรกkladnรญ knihovna, kterรก bude pouลพita pro testovacรญ รบฤely.
    • karma-chrome-launcher je samostatnรก knihovna, kterรก umoลพลˆuje rozpoznรกnรญ pล™รญkazลฏ karmy prohlรญลพeฤem chrome.
    • karma-jasmine โ€“ Nainstaluje jasmรญn, kterรฝ je zรกvislรฝm rรกmcem pro Karmu.

Krok 2) Dalลกรญm krokem je instalace nรกstroje pล™รญkazovรฉho ล™รกdku karma. To je vyลพadovรกno pro provรกdฤ›nรญ pล™รญkazลฏ linie karmy. Nรกstroj karma line bude pouลพit k inicializaci prostล™edรญ karmy pro testovรกnรญ.

Chcete-li nainstalovat nรกstroj pล™รญkazovรฉho ล™รกdku, spusลฅte nรญลพe uvedenรฝ ล™รกdek z pล™รญkazovรฉho ล™รกdku

npm install karma-cli

kde

  • karma-cli se pouลพรญvรก k instalaci rozhranรญ pล™รญkazovรฉho ล™รกdku pro karmu, kterรฉ bude pouลพito k zรกpisu pล™รญkazลฏ karma v rozhranรญ pล™รญkazovรฉho ล™รกdku.
  • Konfigurace rรกmce Karma

    Dalลกรญm krokem je konfigurace karmy, kterou lze provรฉst pomocรญ pล™รญkazu

    "karma โ€“init"

    Po provedenรญ vรฝลกe uvedenรฉho kroku karma vytvoล™รญ soubor karma.conf.js. Soubor bude pravdฤ›podobnฤ› vypadat jako รบryvek zobrazenรฝ nรญลพe

    files: [
      'Your application Name'/AngularJS/AngularJS.js',
      'Your application Name'/AngularJS-mocks/AngularJS-mocks.js',
      'lib/app.js',
      'tests/*.js'
    ]

    Vรฝลกe uvedenรฉ konfiguraฤnรญ soubory sdฤ›lujรญ karma runtime engine nรกsledujรญcรญ vฤ›ci

    1. 'Nรกzev vaลกรญ aplikace' โ€“ Toto bude nahrazeno nรกzvem vaลกรญ aplikace.
    2. "Nรกzev vaลกรญ aplikace'/AngularJS/AngularJS.js' โ€“ To ล™รญkรก karmฤ›, ลพe vaลกe aplikace zรกvisรญ na zรกkladnรญch modulech v AngularJS
    3. 'Nรกzev vaลกรญ aplikace'/AngularJS-mocks/AngularJS-mocks.js' โ€“ Toto ล™ekne karmฤ›, aby pouลพila funkci Unit Testing pro AngularJS ze souboru Angular.JS-mocks.js.
    4. Vลกechny soubory hlavnรญ aplikace nebo obchodnรญ logiky jsou pล™รญtomny ve sloลพce lib vaลกรญ aplikace.
    5. Sloลพka testy bude obsahovat vลกechny testy jednotek.

    Chcete-li zkontrolovat, zda karma funguje, vytvoล™te soubor s nรกzvem Sample.js, vloลพte nรญลพe uvedenรฝ kรณd a umรญstฤ›te jej do adresรกล™e test.

    describe('Sample test', function() {
      it('Condition is true', function() {
        expect('AngularJS').toBe('AngularJS');
      });
    });

    Vรฝลกe uvedenรฝ kรณd mรก nรกsledujรญcรญ aspekty

    1. Funkce description se pouลพรญvรก k popisu testu. V naลกem pล™รญpadฤ› dรกvรกme naลกemu testu popis 'Ukรกzkovรฝ test'.
    2. Funkce 'it' se pouลพรญvรก k pojmenovรกnรญ testu. V naลกem pล™รญpadฤ› dรกvรกme nรกzev naลกeho testu jako 'Podmรญnka je pravdivรก'. Nรกzev testu musรญ bรฝt smysluplnรฝ.
    3. Kombinace klรญฤovรฝch slov 'oฤekรกvat' a 'toBe' udรกvรก, jakรก je oฤekรกvanรก a skuteฤnรก hodnota vรฝsledku testu. Pokud je skuteฤnรก a oฤekรกvanรก hodnota stejnรก, pak test projde, jinak selลพe.

    Kdyลพ na pล™รญkazovรฉm ล™รกdku spustรญte nรกsledujรญcรญ ล™รกdek, spustรญ se vรฝลกe uvedenรฝ testovacรญ soubor

    KARMA start

    Nรญลพe uvedenรฝ vรฝstup je pล™evzat z IDE Webstorm ve kterรฉm byly provedeny vรฝลกe uvedenรฉ kroky.

    Konfigurace rรกmce Karma

    1. Vรฝstup pล™ichรกzรญ v prลฏzkumnรญku Karma uvnitล™ Webstorm. Toto okno ukazuje provedenรญ vลกech testลฏ, kterรฉ jsou definovรกny v rรกmci karmy.
    2. Zde vidรญte, ลพe je zobrazen popis provedenรฉho testu, kterรฝ je โ€žUkรกzkovรฝ testโ€œ.
    3. Dรกle mลฏลพete vidฤ›t, ลพe je proveden samotnรฝ test, kterรฝ mรก nรกzev โ€žPodmรญnka je pravdivรกโ€œ.
    4. Vลกimnฤ›te si, ลพe protoลพe vลกechny testy majรญ vedle sebe zelenou ikonu โ€žOkโ€œ, kterรก symbolizuje, ลพe vลกechny testy proลกly รบspฤ›ลกnฤ›.

    Testovรกnรญ ovladaฤลฏ AngularJS

    Rรกmec testovรกnรญ karmy mรก takรฉ funkcionalitu pro testovรกnรญ kontrolรฉrลฏ od zaฤรกtku do konce. To zahrnuje testovรกnรญ objektu $scope, kterรฝ se pouลพรญvรก v rรกmci Controllers.

    Podรญvejme se na pล™รญklad, jak toho mลฏลพeme dosรกhnout.

    V naลกem pล™รญkladu

    Nejprve bychom potล™ebovali definovat regulรกtor. Tento ovladaฤ by provedl nรญลพe uvedenรฉ kroky

    1. Vytvoล™te promฤ›nnou ID a pล™iล™aฤte jรญ hodnotu 5.
    2. Pล™iล™aฤte promฤ›nnou ID objektu $scope.

    Nรกลก test otestuje existenci tohoto ล™adiฤe a takรฉ otestuje, zda je promฤ›nnรก ID objektu $scope nastavena na 5.

    Nejprve se musรญme ujistit, ลพe jsou splnฤ›ny nรกsledujรญcรญ pล™edpoklady

    Nainstalujte knihovnu Angular.JS-mocks pล™es npm. To lze provรฉst spuลกtฤ›nรญm nรญลพe uvedenรฉho ล™รกdku v pล™รญkazovรฉm ล™รกdku

    npm install Angular JS-mocks

    Dรกle je tล™eba upravit soubor karma.conf.js, aby bylo zajiลกtฤ›no, ลพe do testu budou zahrnuty sprรกvnรฉ soubory. Nรญลพe uvedenรฝ segment pouze zobrazuje soubory ฤรกsti karma.conf.js, kterรฉ je tล™eba upravit

    files: ['lib/AngularJS.js','lib/AngularJS-mocks.js','lib/index.js','test/*.js']
    • Parametr 'files' v podstatฤ› ล™รญkรก Karmฤ› vลกechny soubory, kterรฉ jsou vyลพadovรกny pro bฤ›h testลฏ.
    • Ke spuลกtฤ›nรญ testลฏ jednotek AngularJS jsou vyลพadovรกny soubory AngularJS.js a AngularJS-mocks.js
    • Soubor index.js bude obsahovat nรกลก kรณd pro ล™adiฤ
    • Sloลพka test bude obsahovat vลกechny naลกe testy AngularJS

    Nรญลพe je nรกลก kรณd Angular.JS, kterรฝ bude uloลพen jako soubor Index.js v testovacรญ sloลพce naลกรญ aplikace.

    Nรญลพe uvedenรฝ kรณd dฤ›lรก pouze nรกsledujรญcรญ vฤ›ci

    1. Vytvoล™it Modul AngularJS s nรกzvem sampleApp
    2. Vytvoล™te ล™adiฤ s nรกzvem AngularJSController
    3. Vytvoล™te promฤ›nnou s nรกzvem ID, pล™iล™aฤte jรญ hodnotu 5 a pล™iล™aฤte ji k objektu $scope
    var sampleApp = AngularJS.module('sampleApp',[]);
    sampleApp.controller('AngularJSController', function($scope) {
        $scope.ID =5;
    });

    Jakmile je vรฝลกe uvedenรฝ kรณd รบspฤ›ลกnฤ› proveden, dalลกรญm krokem by bylo vytvoล™enรญ a Testovacรญ pล™รญpad abyste se ujistili, ลพe kรณd byl napsรกn a sprรกvnฤ› proveden.

    Kรณd pro nรกลก test bude vypadat nรญลพe.

    Kรณd bude v samostatnรฉm souboru s nรกzvem ControllerTest.js, kterรฝ bude umรญstฤ›n ve sloลพce test. Nรญลพe uvedenรฝ kรณd dฤ›lรก pouze nรกsledujรญcรญ klรญฤovรฉ vฤ›ci

    1. BeforeEach function โ€“ Tato funkce se pouลพรญvรก k naฤtenรญ naลกeho modulu AngularJS.JS s nรกzvem 'sampleApp' pล™ed spuลกtฤ›nรญm testu. Vลกimnฤ›te si, ลพe toto je nรกzev modulu v souboru index.js.
    2. Objekt $controller je vytvoล™en jako maketa objektu pro kontrolรฉr โ€Angular JSControllerโ€, kterรฝ je definovรกn v naลกem souboru index.js. V jakรฉmkoliv typu Unit Testing pล™edstavuje faleลกnรฝ objekt fiktivnรญ objekt, kterรฝ bude skuteฤnฤ› pouลพit pro testovรกnรญ. Tento faleลกnรฝ objekt bude ve skuteฤnosti simulovat chovรกnรญ naลกeho ovladaฤe.
    3. beforeEach(inject(function(_$controller_)) โ€“ Pouลพรญvรก se k vloลพenรญ faleลกnรฉho objektu v naลกem testu tak, aby se choval jako skuteฤnรฝ ovladaฤ.
    4. var $scope = {}; Toto je faleลกnรฝ objekt vytvรกล™enรฝ pro objekt $scope.
    5. var controller = $controller('AngularJSController', { $scope: $scope }); โ€“ Zde kontrolujeme existenci ล™adiฤe s nรกzvem 'Angular.JSController'. Zde takรฉ pล™iล™azujeme vลกechny promฤ›nnรฉ z naลกeho objektu $scope v naลกem kontrolรฉru v souboru Index.js k objektu $scope v naลกem testovacรญm souboru
    6. Nakonec porovnรกvรกme $scope.ID s 5
    describe('AngularJSController', function() {
        beforeEach(module('sampleApp'));
    
        var $controller;
    
        beforeEach(inject(function(_$controller_){
                  $controller = _$controller_;
        }));
    
        describe('$scope.ID', function() {
            it('Check the scope object', function() {
                var $scope = {};
                var controller = $controller('AngularJSController', { $scope: $scope });
                expect($scope.ID).toEqual(5);
            });
        });
    });

    Vรฝลกe uvedenรฝ test se spustรญ v prohlรญลพeฤi karmy a poskytne stejnรฝ vรฝsledek, jakรฝ byl ukรกzรกn v pล™edchozรญm tรฉmatu.

    Testovรกnรญ smฤ›rnic AngularJS

    Rรกmec testovรกnรญ karmy mรก takรฉ funkce pro testovรกnรญ vlastnรญch direktiv. To zahrnuje ลกablony URL, kterรฉ se pouลพรญvajรญ v rรกmci vlastnรญch direktiv.

    Podรญvejme se na pล™รญklad, jak toho mลฏลพeme dosรกhnout.

    V naลกem pล™รญkladu nejprve definujeme vlastnรญ direktivu, kterรก dฤ›lรก nรกsledujรญcรญ vฤ›ci

    1. Vytvoล™te modul AngularJS s nรกzvem sampleApp
    2. Vytvoล™te vlastnรญ direktivu s nรกzvem โ€“ Guru99
    3. Vytvoล™te funkci, kterรก vrรกtรญ ลกablonu se znaฤkou zรกhlavรญ, kterรก zobrazรญ text โ€žToto je AngularJS Testingโ€œ.
    var sampleApp = AngularJS.module('sampleApp',[]);
    sampleApp.directive('Guru99', function () {
        return {
            restrict: 'E',
            replace: true,
            template: '<h1>This is AngularJS Testing</h1>'
        };
    });

    Jakmile je vรฝลกe uvedenรฝ kรณd รบspฤ›ลกnฤ› proveden, dalลกรญm krokem by bylo vytvoล™enรญ testovacรญho pล™รญpadu, aby se zajistilo, ลพe kรณd byl napsรกn a proveden sprรกvnฤ›. Kรณd pro nรกลก test bude vypadat nรญลพe

    Kรณd bude v samostatnรฉm souboru s nรกzvem DirectiveTest.js, kterรฝ bude umรญstฤ›n ve sloลพce test. Nรญลพe uvedenรฝ kรณd dฤ›lรก pouze nรกsledujรญcรญ klรญฤovรฉ vฤ›ci

    1. Pล™ed kaลพdou funkcรญ โ€“ Tato funkce se pouลพรญvรก k naฤtenรญ naลกeho modulu Angular JS s nรกzvem โ€žsampleAppโ€œ pล™ed testovacรญm provozem.
    2. Ke kompilaci smฤ›rnice se pouลพรญvรก sluลพba $compile. Tato sluลพba je povinnรก a musรญ bรฝt deklarovรกna, aby ji Angular.JS mohl pouลพรญt ke kompilaci naลกรญ vlastnรญ smฤ›rnice.
    3. $rootscope je primรกrnรญ rozsah jakรฉkoli aplikace AngularJS.JS. Objekt $scope ovladaฤe jsme vidฤ›li v pล™edchozรญch kapitolรกch. Objekt $scope je potomkem objektu $rootscope. Dลฏvod, proฤ je to zde deklarovรกno, je ten, ลพe provรกdรญme zmฤ›nu skuteฤnรฉ HTML znaฤky v DOM prostล™ednictvรญm naลกรญ vlastnรญ direktivy. Proto musรญme pouลพรญt sluลพbu $rootscope, kterรก skuteฤnฤ› naslouchรก nebo vรญ, kdyลพ dojde k jakรฉkoli zmฤ›nฤ› v dokumentu HTML.
    4. var element = $compile(โ€œ โ€œ) โ€“ Pouลพรญvรก se ke kontrole, zda je naลกe smฤ›rnice aplikovรกna tak, jak mรก. Nรกzev naลกรญ vlastnรญ smฤ›rnice je Guru99 a z kapitoly o vlastnรญch direktivรกch vรญme, ลพe kdyลพ je smฤ›rnice vloลพena do naลกeho HTML, bude vloลพena jako โ€ž '. Proto se toto prohlรกลกenรญ pouลพรญvรก k provedenรญ tรฉto kontroly.
    5. expect(element.html()).toContain(โ€œToto je AngularJS Testingโ€) โ€“ Pouลพรญvรก se k instruovรกnรญ funkce oฤekรกvat, ลพe by mฤ›la najรญt prvek (v naลกem pล™รญpadฤ› znaฤku div), kterรฝ obsahuje vnitล™nรญ HTML text โ€žToto je Testovรกnรญ AngularJSโ€œ.
    describe('Unit testing directives', function() {
      var $compile,
          $rootScope;
       beforeEach(module('sampleApp'));
    
      beforeEach(inject(function(_$compile_, _$rootScope_){
        $compile = _$compile_;
        $rootScope = _$rootScope_;
     }));
    
     it('Check the directive', function() {
        // Compile a piece of HTML containing the directive
        var element = $compile("<ng-Guru99></ng-Guru99>")($rootScope);
        $rootScope.$digest();
        expect(element.html()).toContain("This is AngularJS Testing");
      });
    });

    Vรฝลกe uvedenรฝ test se spustรญ v prohlรญลพeฤi karmy a poskytne stejnรฝ vรฝsledek, jakรฝ byl ukรกzรกn v pล™edchozรญm tรฉmatu.

    End to End testovรกnรญ aplikacรญ AngularJS JS

    Rรกmec pro testovรกnรญ karmy spolu s rรกmcem nazvanรฝm Protractor mรก funkci testovรกnรญ webovรฉ aplikace od zaฤรกtku do konce.

    Nejde tedy pouze o testovรกnรญ direktiv a kontrolรฉrลฏ, ale takรฉ testovรกnรญ ฤehokoli jinรฉho, โ€‹โ€‹co se mลฏลพe na strรกnce HTML objevit.

    Podรญvejme se na pล™รญklad, jak toho mลฏลพeme dosรกhnout.

    V naลกem pล™รญkladu nรญลพe budeme mรญt aplikaci AngularJS, kterรก vytvoล™รญ datovou tabulku pomocรญ direktivy ng-repeat.

    1. Nejprve vytvoล™รญme promฤ›nnou nazvanou โ€žtutorialโ€œ a v jednom kroku jรญ pล™iล™adรญme nฤ›kolik pรกrลฏ klรญฤโ€“hodnota. Kaลพdรฝ pรกr klรญฤโ€“hodnota bude pouลพit jako data pล™i zobrazenรญ tabulky. Promฤ›nnรก tutoriรกlu je pak pล™iล™azena k objektu scope, takลพe k nรญ lze pล™istupovat z naลกeho pohledu.
    2. Pro kaลพdรฝ ล™รกdek dat v tabulce pouลพรญvรกme direktivu ng-repeat. Tato direktiva prochรกzรญ kaลพdรฝ pรกr klรญฤโ€“hodnota v objektu rozsahu kurzu pomocรญ promฤ›nnรฉ ptutor.
    3. Nakonec pouลพรญvรกme tag spolu s pรกry klรญฤ-hodnota (ptutor.Name a ptutor.Description) pro zobrazenรญ dat tabulky.
    <table >
                 <tr ng-repeat="ptutor in tutorial">
                       <td>{{ ptutor.Name }}</td>
    	               <td>{{ ptutor.Description }}</td>
                 </tr>
       </table>
    </div>
      <script type="text/javascript">
          var app = AngularJS.module('DemoApp', []);
            app.controller('DemoController', function($scope) {
               $scope.tutorial =[
                    {Name: "Controllers" , Description : "Controllers in action"},
                    {Name: "Models" , Description : "Models and binding data"},
    	            {Name: "Directives" , Description : "Flexibility of Directives"}
    			]   });

    Jakmile je vรฝลกe uvedenรฝ kรณd รบspฤ›ลกnฤ› proveden, dalลกรญm krokem by bylo vytvoล™enรญ testovacรญho pล™รญpadu, aby se zajistilo, ลพe kรณd byl napsรกn a proveden sprรกvnฤ›. Kรณd pro nรกลก test bude vypadat nรญลพe

    Nรกลก test ve skuteฤnosti otestuje direktivu ng-repeat a zajistรญ, ลพe obsahuje 3 ล™รกdky dat, jak by mฤ›la z vรฝลกe uvedenรฉho pล™รญkladu.

    Nejprve se musรญme ujistit, ลพe jsou splnฤ›ny nรกsledujรญcรญ pล™edpoklady

    Nainstalujte knihovnu รบhlomฤ›rลฏ pล™es npm. To lze provรฉst spuลกtฤ›nรญm nรญลพe uvedenรฉho ล™รกdku v pล™รญkazovรฉm ล™รกdku

    "npm install protractor"

    Kรณd pro nรกลก test bude vypadat nรญลพe.

    Kรณd bude v samostatnรฉm souboru s nรกzvem CompleteTest.js , kterรฝ bude umรญstฤ›n ve sloลพce test. Nรญลพe uvedenรฝ kรณd dฤ›lรก pouze nรกsledujรญcรญ klรญฤovรฉ vฤ›ci

    1. Funkce prohlรญลพeฤe je poskytovรกna knihovnou รบhlomฤ›rลฏ a pล™edpoklรกdรก, ลพe naลกe aplikace AngularJS (s kรณdem uvedenรฝm vรฝลกe) bฤ›ลพรญ na adrese URL naลกeho webu โ€“ http://localhost:8080/Guru99/
    2. var list=element.all(by.repeater(ptutor v tutoriรกlu')); -Tento ล™รกdek kรณdu ve skuteฤnosti naฤรญtรก direktivu ng-repeat, kterรก je vyplnฤ›na kรณdem 'ptutor in tutorial'. Element a by.repeater jsou speciรกlnรญ klรญฤovรก slova poskytovanรก knihovnou protractor, kterรก nรกm umoลพลˆuje zรญskat podrobnosti o direktivฤ› ng-repeat.
    3. oฤekรกvat(seznam.poฤet()).rovnocen(3); โ€“ Nakonec pouลพรญvรกme funkci oฤekรกvat, abychom vidฤ›li, ลพe v naลกรญ tabulce jsou skuteฤnฤ› zaplลˆovรกny 3 poloลพky v dลฏsledku direktivy ng-repeat.
    Describe('Unit testing end to end', function() {
      beforeEach(function() {
    browser.get('http://localhost:8080/Guru99/');
    })
       it('Check the ng directive', function() {
          var list=element.all(by.repeater(ptutor in tutorial'));
          expect(list.count()).toEqual(3);  }); });

    Vรฝลกe uvedenรฝ test se spustรญ v prohlรญลพeฤi karmy a poskytne stejnรฝ vรฝsledek, jakรฝ byl ukรกzรกn v pล™edchozรญm tรฉmatu.

    Shrnutรญ

    • Testovรกnรญ v AngularJS se provรกdรญ pomocรญ rรกmce karma, rรกmce, kterรฝ vyvinul sรกm Google.
    • Rรกmec karmy se instaluje pomocรญ sprรกvce balรญฤkลฏ uzlลฏ. Klรญฤovรฉ moduly, kterรฉ je nutnรฉ nainstalovat pro zรกkladnรญ testovรกnรญ, jsou karma, karma-chrom-launcher, karma-jasmรญn a karma-cli.
    • Testy jsou zapsรกny v samostatnรฝch souborech js, kterรฉ se obvykle uchovรกvajรญ ve sloลพce test vaลกรญ aplikace. Umรญstฤ›nรญ tฤ›chto testovacรญch souborลฏ musรญ bรฝt uvedeno ve speciรกlnรญm konfiguraฤnรญm souboru s nรกzvem karma.conf.js. Karma pouลพรญvรก tento konfiguraฤnรญ soubor pล™i provรกdฤ›nรญ vลกech testลฏ.
    • Karmu lze takรฉ pouลพรญt k testovรกnรญ ovladaฤลฏ a vlastnรญch direktiv.
    • Pro รบplnรฉ testovรกnรญ webu je tล™eba nainstalovat dalลกรญ rรกmec zvanรฝ รบhlomฤ›r prostล™ednictvรญm sprรกvce balรญฤkลฏ Node. Tento rรกmec poskytuje speciรกlnรญ metody, kterรฉ lze pouลพรญt k testovรกnรญ vลกech prvkลฏ na strรกnce HTML.

    Shrลˆte tento pล™รญspฤ›vek takto: