【问题标题】:Angularjs service unit testAngularjs服务单元测试
【发布时间】:2016-01-21 16:21:45
【问题描述】:

我创建了这个服务来模拟 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。我做错了什么?

谢谢

【问题讨论】:

  • Karma 不是一个测试框架。它是一个测试运行器,用于运行使用单元测试框架(如 Jasmine 或 Mocha)编写的单元测试。你知道你使用的是哪个框架吗?大概就是其中之一吧。您能否在实例化模拟服务的地方包含更多测试?

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


【解决方案1】:

在您的单元测试中,您将需要执行类似的操作来模拟原始 LocalStorage

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-30
    • 1970-01-01
    • 2016-10-22
    • 1970-01-01
    • 2012-12-23
    • 2012-05-20
    相关资源
    最近更新 更多