我正在使用“ng test”运行我的测试用例。它在路由级别失败。请找截图。
<router-outlet></router-outlet>
位于app.component.html
如何在app.component.spec.ts中添加路由器测试以传递测试用例?
答案 0 :(得分:0)
我做了以下步骤问题修复
1)使用以下代码
在根文件夹的测试文件夹中创建router-stubs.tsimport { Directive, Input } from '@angular/core';
@Directive({
selector: '[routerLink]',
host: {
'(click)': 'onClick()'
}
})
export class RouterLinkStubDirective {
@Input('routerLink') linkParams: any;
navigatedTo: any = null;
onClick() {
this.navigatedTo = this.linkParams;
}
}
2)将以下代码添加到app.component.spec.ts
import { NO_ERRORS_SCHEMA } from '@angular/core';
import { RouterLinkStubDirective } from '../testing/router-stubs';
describe('AppComponent', () => {
beforeEach(() => {
TestBed.configureTestingModule({
declarations: [ AppComponent, RouterLinkStubDirective ],
schemas: [ NO_ERRORS_SCHEMA ]
})
.compileComponents()
.then(() => {
let fixture = TestBed.createComponent(AppComponent);
let comp = fixture.componentInstance;
// trigger initial data binding
fixture.detectChanges();
});
});
它修正了错误&#34; router-outlet而不是已知元素&#34;
答案 1 :(得分:0)
除非我弄错了,否则你不需要为此创建自己的路由器存根。 您所要做的就是导入角度测试路由器模块而不是真实的路由器模块或根本不导入。
在TestBed.configureTestingModule
中3306