我不知道我做错了什么,我没有找到任何链接的RouterLinkWithHref到测试中的任何错误,而且据我所知,我没有在任何地方使用RouterLinkWithHref:/
谁能帮我这个:
fdescribe('AddItemComponent: ',() => { let cmp: AddItemComponent; let fixture: ComponentFixture<AddItemComponent>; let de: DebugElement; let el: HTMLElement; const mockRouter = { navigate: jasmine.createSpy('navigate') }; const mockCustomCardService = { getItemDeliveryDate: () => Observable.empty(),emitItemChanges: () => Observable.empty(),}; const mockActivatedRoute = { snapshot: {} }; const mockPageDataService = {}; const mockUserService = {}; beforeEach(() => { TestBed.configureTestingModule({ declarations: [AddItemComponent],imports: [FormsModule,ReactiveFormsModule,SharedModule,TranslateModule.forRoot(),RouterTestingModule],providers: [ SpinningService,FormBuilder,TranslateService,{ provide: Router,useValue: mockRouter },{ provide: CustomItemService,useValue: mockCustomItemService },{ provide: PageDataService,useValue: mockPageDataService },{ provide: UserService,useValue: mockUserService },{ provide: ActivatedRoute,useValue: mockActivatedRoute } ],schemas: [NO_ERRORS_SCHEMA] }); fixture = TestBed.createComponent(AddItemComponent); cmp = fixture.componentInstance; fixture.detectChanges(); }); it('Simple test',() => { expect(true).toBeTruthy(); }); });
解决方法
您应该删除路由模拟(mockRouter,mockActivatedRoute),因为您已经导入了RouterTestingModule,如下所示:
describe('AddItemComponent: ',() => { let cmp: AddItemComponent; let fixture: ComponentFixture<AddItemComponent>; let de: DebugElement; let el: HTMLElement; const mockCustomCardService = { getItemDeliveryDate: () => Observable.empty(),}; const mockPageDataService = {}; const mockUserService = {}; beforeEach(() => { TestBed.configureTestingModule({ declarations: [AddItemComponent],useValue: mockUserService } ],() => { expect(true).toBeTruthy(); }); });