Angular 在路由器出口外部渲染的角度11测试组件
下面是一个典型的代码,显示所有组件共有的错误消息Angular 在路由器出口外部渲染的角度11测试组件,angular,jasmine,Angular,Jasmine,下面是一个典型的代码,显示所有组件共有的错误消息 <div> <div> <app-alert></app-alert> </div> <div> <router-outlet></router-outlet> </div> </div> 参考fixture.debugElement不会给标签提供标签在路由器出口之外的原因 如何测试
<div>
<div>
<app-alert></app-alert>
</div>
<div>
<router-outlet></router-outlet>
</div>
</div>
参考fixture.debugElement
不会给
标签提供标签在路由器出口之外的原因
如何测试登录失败和
login.component.spec.ts中消息无效凭据的显示您可以创建一个TestHost组件,在spec.ts
文件中包含这两个组件
@Component({
template: `
<app-alert></app-alert>
<login></login>
`
})
class TestHostComponent {
}
.....
TestBed.configureTestingModule({
declarations: [AppAlertComponent, LoginComponent, TestHostComponent],
providers: [/* your providers */]
})
fixture = TestBed.createComponent(TestHostComponent);
testHost = fixture.componentInstance;
// get a handle on the login component/class
loginComponent = fixture.debugElement.query(By.directive(LoginComponent)).componentInstance;
// get a handle on the app alert component/class
alertComponent = fixture.debugElement.query(By.directive(AppAlertComponent)).componentInstance;
@组件({
模板:`
但是它也应该有帮助。这不是一个单元,而是一个集成测试。您的组件应该测试alertService.showart()
是否使用正确的输入调用,就这样;它不应该测试更多。谢谢,事实上我试过了,但我不知道语法fixture.debugElement.query(By.directive(LoginComponent))
这正在工作,但是,innerText或innerHTML仍然为空,如何在下一个测试组件擦除它之前捕获它?我不确定如何执行。警报组件是空的还是登录组件?可能有*ngIf
阻止视图渲染?
@Component({
template: `
<app-alert></app-alert>
<login></login>
`
})
class TestHostComponent {
}
.....
TestBed.configureTestingModule({
declarations: [AppAlertComponent, LoginComponent, TestHostComponent],
providers: [/* your providers */]
})
fixture = TestBed.createComponent(TestHostComponent);
testHost = fixture.componentInstance;
// get a handle on the login component/class
loginComponent = fixture.debugElement.query(By.directive(LoginComponent)).componentInstance;
// get a handle on the app alert component/class
alertComponent = fixture.debugElement.query(By.directive(AppAlertComponent)).componentInstance;