Angularjs服务单元测试

时间:2016-01-21 16:21:46

标签: javascript angularjs unit-testing service karma-runner

我创建了这个服务来模拟localStorage

var myModule = angular.module('mockLocalStorageModule', []);
myModule.factory('serviceMockLocalStorage', function() {
  var mock = (function () {
var store = {};
return {
  getItem: function (key) {
    return store[key];
  },
  setItem: function (key, value) {
    store[key] = value.toString();
  },
  clear: function () {
    store = {};
  },
  removeItem: function (key) {
    delete store[key];
  }
};
})();
  Object.defineProperty(window, 'localStorage', {value: mock, enumerable: true, writable: true, configurable: true});

});

我的业力测试包含此

beforeEach(module('mockLocalStorageModule'));

但是没有使用该服务,测试使用的是真正的localStorage。我做错了什么?

由于

1 个答案:

答案 0 :(得分:0)

在你的单元测试中,你需要做这样的事情来模拟原来的LocalStorage

angular.mock.module(function($provide) {
        $provide.value('$LocalStorage', mockLocalStorage);
    });
相关问题