I am trying to write a unit test for a angular factory:
define([], function () {
'use strict';
var factoryName = 'UserFactory';
var components = ['ProductFactory', '$state'];
var factory = function (ProductFactory, $state) {
var viewState = function(view, data) {
if(data.access[view] === true) {
return;
}
else {
$state.go('notAuth');
}
};
return {
viewState: viewState
};
};
components.push(factory);
return {
name: factoryName,
component: components
};
});
I have the following unit test:
define(['require', 'angular-mocks'], function (require) {
'use strict';
var angular = require('angular');
describe('<-- UserFactory Spec ------>', function () {
var scope, $httpBackend, userFactory;
beforeEach(angular.mock.module('UserFactory'));
beforeEach(inject(function (_$rootScope_, _UserFactory_) {
scope = _$rootScope_.$new();
userFactory = _UserFactory_;
spyOn(userFactory, 'viewState').and.returnValue({firstName:'Joe',lastName:'Smith',access:'read'});
scope.$apply();
}));
it('method viewState() was called', function () {
expect(userFactory.viewState).toHaveBeenCalled();
});
});
});
However i see the following error:
Expected spy viewState to have been called.
Aucun commentaire:
Enregistrer un commentaire