tan*_*may 3 javascript unit-testing local-storage jasmine angularjs
如何$window.localStorage使用Jasmine和ngMock对内部使用的工厂进行单元测试?
这是类似于我的东西:
myApp.factory('myData',function ($window) {
return {
message: $window.localStorage['stuff']
}
});
Run Code Online (Sandbox Code Playgroud)
谢谢你!
以下适用于Jasmine 2.4:
angular.module('MyModule', []).factory('myData',function ($window) {
return {
message: function(){
return $window.localStorage['stuff'] ;
}
}
});
describe("TestName", function() {
beforeEach(module('MyModule'));
var myData, store;
beforeEach(inject(function(_myData_) {
myData = _myData_;
store = {};
var localStorage = window.localStorage;
spyOn(localStorage, 'getItem').and.callFake(function (key) {
return store[key];
});
spyOn(localStorage, 'setItem').and.callFake(function (key, value) {
return store[key] = value + '';
});
spyOn(localStorage, 'clear').and.callFake(function () {
store = {};
});
}));
it("feature desc", function() {
localStorage['stuff'] = 'hello';
expect(myData.message()).toEqual('hello');
});
});
Run Code Online (Sandbox Code Playgroud)
注意使用_myData_下划线技巧(参见docs).
| 归档时间: |
|
| 查看次数: |
2744 次 |
| 最近记录: |