Angularjs 使用jasmine在Angular JS中测试$q的返回值
我的工厂如下:Angularjs 使用jasmine在Angular JS中测试$q的返回值,angularjs,karma-jasmine,Angularjs,Karma Jasmine,我的工厂如下: var myFactory = function ($q) { factory = {}; factory.newObject = function() { return $q.when({ id: 0 }}); }; }; angular.module('myModule').factory('myFactory', myFactory); 如何使用jasmine测试newObject函数并确保返回的id为0? 以下是我目前掌握的情
var myFactory = function ($q) {
factory = {};
factory.newObject = function() {
return $q.when({ id: 0 }});
};
};
angular.module('myModule').factory('myFactory', myFactory);
如何使用jasmine测试newObject函数并确保返回的id为0?
以下是我目前掌握的情况:
describe("My Factory Test", function () {
var testMyFactory;
beforeEach(module('myModule'));
beforeEach(inject(function (myFactory) {
testMyFactory = myFactory;
}));
it('New Entity', function ($q) {
testMyFactory.newObject().then(function(myObj) {
expect(myObj.id).toBe(0); // does not work
});
});
});
这起到了作用:
describe("My Factory Test", function () {
var testMyFactory, rootScope;
beforeEach(module('myModule'));
beforeEach(inject(function (myFactory, $rootScope) {
testMyFactory = myFactory;
rootScope = $rootScope;
}));
it('New Entity', function () {
var testObj;
testMyFactory.newObject().then(function(myObj) {
testObj = myObj;
});
rootScope.$apply();
expect(testObj.id).toBe(0);
});
});