К сожалению, практически нет пути к этому.
Однако, если ваша функция serviceCall()
внутренне вызывает функцию в службе, вы можете следить за этим.(Запомните хорошую практику Angular - принцип разделения интересов)
Предположение о вашем коде:
.component('myComponent', {
templateUrl: 'example.html',
controller: function(SomeService) {
function serviceCall() {
SomeService.someFunction();
}
serviceCall();
}
});
Вы можете внедрить службу в свой тест и шпионить за функцией, которая, как ожидается, будет вызываться следующим образом:
var SomeService;
beforeEach(inject(function (_SomeService_) {
SomeService = _SomeService_;
}));
it('should call someFunction', function () {
spyOn(SomeService, 'someFunction').and.returnValue({
then: function () { // Mimic a promise
return ... mocked object ... ;
}
});
// Instantiate the controller
expect(SomeService.someFunction).toHaveBeenCalled();
// Expect stuff to have happened in the controller with the returned value
});
Надеюсь, это поможет:)