Как мне проверить, был ли вызван приватный метод AngularJS в $ service? Буду признателен за любую помощь.
angular.module('login')
.service('EventService', [ '$http', '$log', function ($http, $log) {
function sendEvent(category, action, label, value, customParams) {
//
}
return {
sendLoginPageEvent: function (action, customParams) {
if (!customParams) {
customParams = {};
}
customParams.template = 'templateName';
sendEvent('LoginPage', action, null, null, customParams);
},
};
}]);
У меня есть несколько подобных тестов, но, похоже, они не работают:
describe('Test of Cookie Monster service', function() {
var EventService;
var sendEventSpy = jasmine.createSpy('eventSpy');
beforeEach(module(function($provide) {
$provide.value("event", sendEventSpy);
}));
beforeEach(inject(function (_EventService_) {
EventService = _EventService_;
}));
it('send cookie event', function() {
EventService.sendLoginPageEvent('action')
expect(event.sendEvent)
.toHaveBeenCalledWith('LoginPage', 'action', {template: 'templateName'})
});
});
Это даже правильный подход к тестированию сервиса таким образом? Я только начинаю тестировать внешние интерфейсы, поэтому буду благодарен за любые советы.