我有一点Angular Service来存储和检索数据。如何编写用于测试此服务的Jasmine测试规范?
angular.module("myServices").factory('dataStore', [
function() {
var DATASTORE;
DATASTORE = {};
return {
get: function(id) {
if (DATASTORE[id] != null) {
return DATASTORE[id];
} else {
return null;
}
},
put: function(id, data) {
return DATASTORE[id] = data;
}
};
}
]);
以下规格对我不起作用:
"use strict";
describe("Service: dataStore", function() {
var store;
store = null;
beforeEach(function() {
module("myServices").inject([
'dataStore', function(dataStore) {
return store = dataStore;
}
]);
});
it("should return null", function() {
expect(store.get('some')).toBe(null);
});
});
答案 0 :(得分:1)
首先,您应该在beforEach
块内加载模块。之后你可以使用inject
函数 - angular和jasmin将为你完成剩下的工作。
"use strict";
describe("Service: dataStore", function() {
var store;
beforeEach(module('myServices'));
beforeEach(inject(function(dataStore){
store = dataStore;
}));
it("should return null", function() {
expect(store.get('some')).toBe(null);
});
});
答案 1 :(得分:0)
阅读此Testing Angular Services Documentation应该让您入门
至于您的问题,请在 beforeEach 块中注入myServices
模块,并在 it 块中注入dataStore
服务。
beforeEach(module('myServices'));
it("should return null",
inject(function(dataStore) {
expect(dataStore.get('some')).toBe(null);
}));