2014-05-21 6 views

Répondre

0

Pour exécuter test avec angulaire-Karma-Jasmine:

  1. Vous devez installer nodejs, le karma fonctionne au-dessus du noeud

  2. Vous devez installer le karma de Node Packaged Modules à partir de votre fenêtre de commande exécuter :

    npm install -g karma

  3. Si vous prévoyez d'exécuter cette fonction avec Chrome et Firefox et que vous exécutez cette fonction sur Windows, vous devez ajouter 2 environment variables:

 
    CHROME_BIN = [Crome installation path/chrome.exe] 
    FIREFOX_BIN =[Firefox installation path/firefox.exe] 

      4. Retournez à votre dossier de projet en utilisant la fenêtre de commande, vous pouvez exécuter une fois sur place:

karma init

Juste appuyez sur Entrée jusqu'à ce qu'il se termine; ligne de fond cela va créer un fichier nommé:

karma.config.js

Dans mon projet, ce fichier ressemble à ceci, le vôtre sera probablement inclure des commentaires utiles sur les différents paramètres:

 
    module.exports = function(config) { 
     config.set({  
     basePath: '',  
     frameworks: ['jasmine'],  
     files: [ 
      '../app/*.js', 
      '../app/lib/angular.js', 
      '../app/lib/angular-route.min.js', 
      '../app/lib/angular-mocks.js',   
      '../app/app.js', 
      'controllers/*.js', 
      'services/*.js', 
     ],  
     exclude: [ 
     ],  
     reporters: ['progress'],  
     port: 9876,  
     colors: true,  
     logLevel: config.LOG_INFO,  
     autoWatch: true,  
     browsers: ['Chrome','Firefox'], 
     captureTimeout: 60000, 
     singleRun: false 
     }); 
    }; 

Important: Assurez-vous que vous avez inclus dans votre configuration, la fonction inject est sur ce module.

      5. Retour à la fenêtre de commande, accédez où votre fichier est karma.config.js et et Execute:

karma start

À ce stade, vous serez bon d'aller commencer à écrire des tests avec le jasmin.

un simple test de jasmin pour votre contrôleur sera:

describe('MainCtrl', function() { 
    var $scope, $rootScope, createController; 

    beforeEach(inject(function($injector) { 
     $rootScope = $injector.get('$rootScope'); 
     $scope = $rootScope.$new(); 


    var $controller = $injector.get('$controller'); 

     createController = function() { 
      return $controller('MainCtrl', { 
       '$scope': $scope 
      }); 
     }; 
    })); 

    it('should have a...', function() { 
     var controller = createController(); 
// do your testing here... 

    }); 
}); 
Questions connexes