Я хочу протестировать определенный компонент, который расширяет базовый класс. Тест для компонента должен быть изолирован от BaseClass.
Можно ли макетировать используемый базовый класс для тестирования? Я попытался переопределить его, добавив в переопределение поставщиков, но это не сработало (обычный базовый класс все еще применяется).
мой-component.page.ts
import {Component, OnDestroy, OnInit} from '@angular/core';
import {MyBaseClass} from '../my-base-class';
@Component({
selector: 'my-component',
templateUrl: 'my-component.page.html',
styleUrls: ['my-component.page.scss']
})
export class MyComponentPage extends MyBaseClass implements OnInit, OnDestroy {}
my.component.page.spec.ts
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
import { MyComponentPage } from './my-component.page';
class MyBaseClassMock {}
describe('MyComponentPage', () => {
let component: MyComponentPage;
let fixture: ComponentFixture<MyComponentPage>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ MyComponentPage ],
schemas: [CUSTOM_ELEMENTS_SCHEMA],
providers: [{
provide: MyBaseClass,
useClass: MyBaseClassMock
}]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(MyComponentPage);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
Есть ли у кого-нибудь идеи, как смоделировать базовый класс перед созданием дочернего экземпляра? Любая помощь приветствуется!