0

Je suis nouveau à l'écriture des cas de test de jasmin pour l'usine angulaireJS. Je veux tester l'usine entière, mais je suis incapable d'aller chercher getKeys. Voici mon usine.Jasmine 2.0 tests unitaires pour l'usine angularjs

Mon usine est:

'use strict'; 
var a11yModule = angular.module('TestModule', ['ui.bootstrap']); 
a11yModule.factory('TestFacotry', ['$q', '$timeout', function ($q, $timeout) { 
    return { 
     getKeys: function() { 
      return { 
       "abc": 32, 
       "gpa": 33, 
       "end": 35 
      }; 
     } 
    }; 
}]) 

Mon unité Spec est:

describe('modu testing', function() { 
    var TestFacotryMock, q, timeout; 
    beforeEach(module('TestModule', ['ui.bootstrap'])); 

    beforeEach(inject(function (_$q_, _$timeout_, _TestFacotry_) { 
     q = _$q_; 
     timeout = _$timeout_; 
     TestFacotryMock = _TestFacotry_; 

    })); 

    it('Should ', function() { 
     //var output = TestFacotryMock.getKeys.something(); 
     expect(typeof getKeys()).toBe('function'); 
    }); 

}); 

erreur est

Erreur: [injecteur $: modulerr] Impossible de instancier module TestModule en raison de: Erreur: [$ injector: modulerr] Impossible d'instancier le module ui.bootstrap en raison de: Erreur: [$ injector: nomod] Le module 'ui.bootstrap' n'est pas disponible! Vous avez soit mal orthographié le nom du module, soit oublié de le charger. Si vous enregistrez un module, assurez-vous de spécifier les dépendances comme deuxième argument.

+0

Vous n'avez pas besoin de passer '[ 'ui.bootstrap']' lors du test, juste 'beforeeach (module ('TestModule'));' devrait faire – tanmay

+0

obtenir la même erreur même pas passer 'ui.bootstrap' – lucky

+0

S'il vous plaît ajouter ui-bootstrap dans votre fichier karma-conf.js sous forme de fichiers: [ 'bower_components/*/*/ui-bootstrap.js'] – ramanathan

Répondre

0

jamin doit être référencé avant les modules angulaires dans index.html car la bibliothèque de fausses angulaires dépend de jasmin.

load the libraries like jasmin angular,angular-mock from local folder instead from web

.

<link data-require="jasmine" data-semver="1.3.1" rel="stylesheet" href="http://cdn.jsdelivr.net/jasmine/1.3.1/jasmine.css"> 
<script data-require="jasmine" data-semver="1.3.1" src="http://cdn.jsdelivr.net/jasmine/1.3.1/jasmine.js"></script> 
<script data-require="jasmine" data-semver="1.3.1" src="http://cdn.jsdelivr.net/jasmine/1.3.1/jasmine-html.js"></script>   
<script data-require="angular.js" data-semver="1.1.5" src="http://code.angularjs.org/1.1.5/angular.min.js"></script> 
<script data-require="angular-resource.js" data-semver="1.1.5" src="http://code.angularjs.org/1.1.5/angular-resource.min.js"></script> 
<script data-require="angular-mocks" data-semver="1.1.5" src="angular-mocks.js"></script> 
<link rel="stylesheet" href="style.css"> 
<script src="jasmineBootstrap.js"></script> 
<script src="script.js"></script> 
<script src="addSpec.js"></script> 

une erreur dans le test unitaire

it('Should ', function() { 

    expect(typeof TestCommonMock.getKeys()).toBe('object'); 
});