Angular 4 错误“类型 'TestHostComponent' 与类型 'Component' 没有共同的属性。”预防 UT 运行
Angular 4 the error 'Type 'TestHostComponent' has no properties in common with type 'Component'.' prevent UT running
我遇到错误 Type 'TestHostComponent' has no properties in common with type 'Component'.
,当我 运行 使用 ng test
命令进行测试时,在 UT 中包含 'TestHostComponent' 以测试指令后。
这是TestHostComponent
:
@Component({
template: `<div someAttr></div>`
})
export class TestHostComponent {}
这是测试代码的一部分:
let fixture: ComponentFixture<TestHostComponent>;
let de: DebugElement;
let comp: Component;
beforeEach(() => {
fixture = TestBed.configureTestingModule({
declarations: [SomeDirective, TestHostComponent]
})
.createComponent(TestHostComponent);
fixture.detectChanges();
de = fixture.debugElement.query(By.directive(SomeDirective));
comp = fixture.componentInstance;
});
it('should be defined', () => {
expect(de).toBeDefined();
});
环境:
angular: 4.4.6
@angular/cli: 1.4.9
如有任何建议,我们将不胜感激。
同事终于帮我找到了解决办法
原来我违反了 tslint 规则,然后它阻止了 UT 运行。
Component
类型的声明 let comp: Component;
应更改为 TestHostComponent
。
希望对其他人有所帮助。
我遇到错误 Type 'TestHostComponent' has no properties in common with type 'Component'.
,当我 运行 使用 ng test
命令进行测试时,在 UT 中包含 'TestHostComponent' 以测试指令后。
这是TestHostComponent
:
@Component({
template: `<div someAttr></div>`
})
export class TestHostComponent {}
这是测试代码的一部分:
let fixture: ComponentFixture<TestHostComponent>;
let de: DebugElement;
let comp: Component;
beforeEach(() => {
fixture = TestBed.configureTestingModule({
declarations: [SomeDirective, TestHostComponent]
})
.createComponent(TestHostComponent);
fixture.detectChanges();
de = fixture.debugElement.query(By.directive(SomeDirective));
comp = fixture.componentInstance;
});
it('should be defined', () => {
expect(de).toBeDefined();
});
环境:
angular: 4.4.6
@angular/cli: 1.4.9
如有任何建议,我们将不胜感激。
同事终于帮我找到了解决办法
原来我违反了 tslint 规则,然后它阻止了 UT 运行。
Component
类型的声明 let comp: Component;
应更改为 TestHostComponent
。
希望对其他人有所帮助。