Я бы посоветовал вам провести рефакторинг вашего кода и воспользоваться шаблоном Io C (инверсия управления). Это означает, что вам нужно избавиться от зависимости Service
в вашем Component
классе и ввести ее вручную, например:
export class Component {
constructor(service) {
this.service = service;
}
callMethod() {
this.service.thatMethod();
}
}
// Elsewhere in your code
import { Service } from 'some-package';
const component = new Component(new Service());
Этот подход позволит вам эффективно протестировать ваши компоненты с помощью Service
макет:
import { Component } from './src';
describe('test', () => {
it('calls thatMethod of service', () => {
const service = jasmine.createSpyObj('service', ['thatMethod']);
let comp = new Component(service);
comp.callMethod();
expect(service.thatMethod).toHaveBeenCalled();
});
});