我想对工厂方法进行单元测试而不模拟实际方法调用。我该怎么办?
下面是我的工厂,我需要测试工厂方法而不模拟它。
angular
.module('core.app')
.factory('storageService', storageService);
function storageService() {
var service = {
getItem: getItem
};
return service;
function getItem(keyName) {
var data = sessionStorage.getItem(keyName);
return JSON.parse(data);
}
};
以下是我的spec.ts文件。不确定,我在哪里犯错。运行测试时,出现错误“ TypeError:无法读取未定义的属性'getItem'”
导入“茉莉花”;
从*角导入*作为角;
导入“角mo”;
describe(“ reddit api service”,function(){
var storageService: any;
beforeEach(function () {
angular.module('app.core');
});
beforeEach(inject(function (_storageService_) {
storageService = _storageService_;
}));
it('returns ranks', inject(function () {
var res = storageService.getItem('sdfsdf');
expect(res).toEqual(5);
}));
});
答案 0 :(得分:0)
it('should parse json stored in session storage') {
sessionStorage.setItem('key', '{"hello": "world"}');
expect(storageService().getItem('key').hello).toBe('world');
}