AngularJS工厂单元测试具有依赖性

时间:2016-02-08 13:42:48

标签: javascript angularjs unit-testing jasmine

我正在尝试使用Jasmine测试一些AngularJS工厂。它适用于没有任何依赖关系的工厂。我的一家工厂使用Angular Material的$ mdToast作为依赖。

工厂:



(function() {
  'use strict';

  angular
    .module('myModule')
    .factory('ToastFactory', ToastFactory);

  ToastFactory.$inject = ['$mdToast'];

  function ToastFactory($mdToast) {
    var service = {
      showToast1: showToast1,
      showToast2: showToast2
    };

    return service

    function showToast1() {
      return $mdToast.show($mdToast.build({
        templateUrl: 'path'
      }));
    }

    function showToast2() {
      return $mdToast.show($mdToast.build({
        templateUrl: 'path'
      }));
    }
  }
})();




这是另一家没有依赖关系的工厂的工作测试之一。



describe('myFactory', function() {
  //Injector Service
  var $injector;

  //Set Module
  beforeEach(function() {
    angular.module('myModule');
  });

  //Inject injector service
  beforeEach(inject(function() {
    $injector = angular.injector(['myModule']);
  }));


  describe('SampleTest', function() {
    it('should be true', function() {
      //Arrange
      var factory = $injector.get('myFactory');

      //Act
      var res = factory.testMethod();

      //Assert
      expect(res).toBe(true);
    });
  });
})




我知道如何为控制器做这件事,但对工厂却不知道。

0 个答案:

没有答案