Testing an AngularJS factory with Karma (Jasmine)

筅森魡賤 提交于 2019-11-30 13:29:31

You need to call angular.injector:

'use strict';

(function() {
  describe('OfficerValidationService Spec', function() {

    var OfficerValidationService;

    beforeEach(function() {
      angular.module('darthvader');
    });

    beforeEach(inject(function() {
      var $injector = angular.injector(['darthvader']);
      OfficerValidationService = $injector.get('OfficerValidationService');
    }));

    it('is very true', function(){
      var output = OfficerValidationService.something();
      expect(output).toBeTruthy();
    });

  });
}());
Jean-Baptiste Bouhier

To add to martynas' answer, here is a simplified version:

module() is the shorthand of angular.mock.module
inject() is the shorthand of angular.mock.inject (same as $injector)

'use strict';

(function() {
  describe('OfficerValidationService Spec', function() {
    var OfficerValidationService;

    beforeEach(module('darthvader'));
    beforeEach(inject(function (OfficerValidationService) {
      OfficerValidationService = OfficerValidationService;
    }));

     it('OfficerValidationService should exist', function() {
        expect(OfficerValidationService).toBeTruthy();
    });


  });
}());
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!