Тестовая площадка: почему вводится класс по умолчанию, а не мой шпион - PullRequest
0 голосов
/ 05 октября 2018

У меня есть этот установочный код для моего теста

beforeEach(() => {
        loggerServiceSpy = jasmine.createSpyObj('LoggerService', ['log', 'naam']);
        TestBed.configureTestingModule({
            declarations: [UserslistComponent, BizPipe],
            providers: [
                { provide: UserdataService, useClass: MockUserdataService },
                { provide: LoggerService, useValue: loggerServiceSpy }
            ]
        }).compileComponents();
        fixture = TestBed.createComponent(UserslistComponent); 
        component = fixture.componentInstance;
        fixture.detectChanges();
    });

Я хочу, чтобы он внедрил экземпляр MockUserdataService (что делает) и созданный loggerServiceSpy.

Теперь в UserslistComponent введенный тип LoggerService является «настоящим» LoggerService, а не моим шпионом.

Я видел это, регистрируя консоль имени LoggerService.(Я предоставил loggerservice свойство name).

Это конструктор для UserslistComponent: constructor(private userDataService: UserdataService, private logger: LoggerService) {

1 Ответ

0 голосов
/ 05 октября 2018

Попробуйте переопределить компонент, если в нем предоставляются службы:

beforeEach(() => {
        loggerServiceSpy = jasmine.createSpyObj('LoggerService', ['log', 'naam']);
        TestBed.configureTestingModule({
            declarations: [UserslistComponent, BizPipe],

        }).overrideComponent(UserslistComponent, {
            set: {
                providers: [
                { provide: UserdataService, useClass: MockUserdataService },
                { provide: LoggerService, useValue: loggerServiceSpy }
            ],
            }
        }).compileComponents();
        fixture = TestBed.createComponent(UserslistComponent); 
        component = fixture.componentInstance;
        fixture.detectChanges();
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...