У меня есть простая структура с абстрактным классом, производным классом и тестом. Когда я пытаюсь запустить Karma, выдается следующее сообщение об ошибке:
Failed: Can't resolve all parameters for ActivationsComponent: (?, ?).
Это мой абстрактный класс:
export abstract class DeviceDetailsWidget implements OnChanges {
@Input() details: DeviceDetails;
abstract visibleForTypes = [];
constructor(
protected el: ElementRef,
protected constants: Constants
) { }
}
Мой класс компонентов:
@Component({
selector: 'dd-dp-activations',
templateUrl: './activations.component.html',
styleUrls: ['./activations.component.scss']
})
export class ActivationsComponent extends DeviceDetailsWidget {
visibleForTypes = [this.constants.DEVICE_SHORT_TYPE.TOTO_SINK];
}
И мой тест:
describe('ActivationsComponent', () => {
let component: ActivationsComponent;
let fixture: ComponentFixture<ActivationsComponent>;
beforeEach(async(() => {
TestBed.configureTestingModule({
declarations: [ ActivationsComponent ]
})
.compileComponents();
}));
beforeEach(() => {
fixture = TestBed.createComponent(ActivationsComponent);
component = fixture.componentInstance;
fixture.detectChanges();
});
it('should create', () => {
expect(component).toBeTruthy();
});
});
Я смотрел на другие ошибки, подобные этой, но я не мог понять, как заставить это работать. Это не единственный виджет в зависимости от этого абстрактного класса. На самом деле у меня много виджетов в зависимости от DeviceDetailsWidget, но это самый простой.
Отредактировано : я обновил класс ActivationsComponent.