我创建了这个服务来模拟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。我做错了什么?
由于
答案 0 :(得分:0)
在你的单元测试中,你需要做这样的事情来模拟原来的LocalStorage
angular.mock.module(function($provide) {
$provide.value('$LocalStorage', mockLocalStorage);
});