大佬教程收集整理的这篇文章主要介绍了Angular2单元测试错误:无法绑定到’routerLink’,因为它不是’a’的已知属性,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我甚至没有更改由angular-cli创建的* .spec.ts文件…
这是我的文件:
用户list.component.html
<ul> <li *ngFor="let user of users"> <a [routerLink]="user._id" (click)="userClicked(user)">{{user.fullNamE}}</a> </li> </ul> <router-outlet></router-outlet>
用户list.component.ts
import { Component,OnInit } from '@angular/core'; import { Router } from '@angular/router'; import { IUser,User } from '../../../interfaces/user'; import { UseRSService } from '../../../services/users.service'; @Component({ SELEctor: 'app-user-list',templateUrl: './user-list.component.html',styleUrls: ['./user-list.component.css'] }) export class UsersListComponent implements OnInit { users: IUser[] = []; constructor(private useRSService: UseRSService,private router: Router) { } ngOnInit() { thiS.UseRSService.getAll() .subscribe(users => { thiS.Users = users.sort(...).map(...); }); } userClicked(user) { thiS.UseRSService.setCurrentUser(user); } clickXBtn(user) { thiS.UseRSService .deleteUser(user) .subscribe(...); } }
用户list.component.spec.ts
/* tslint:disable:no-unused-variable */ import { async,ComponentFixture,TESTBed } from '@angular/core/tesTing'; import { By } from '@angular/platform-browser'; import { DebugElement } from '@angular/core'; import { UsersListComponent } from './user-list.component'; describe('UsersListComponent',() => { let component: UsersListComponent; let fixture: ComponentFixture<UsersListComponent>; beforeEach(async(() => { TESTBed.configureTesTingModule({ declarations: [ UsersListComponent ] }) .compileComponents(); })); beforeEach(() => { fixture = TESTBed.createComponent(UsersListComponent); component = fixture.componenTinstance; fixture.detectChanges(); }); it('should create',() => { expect(component).toBeTruthy(); }); });
我应该改变什么?如何使它工作?
要解决您的问题,请尝试存根RouterLink
https://angular.io/docs/ts/latest/guide/testing.html#!#router-link-stub
@Directive({ SELEctor: '[routerLink]',host: { '(click)': 'onClick()' } }) export class RouterLinkstubDirective { @Input('routerLink') linkParams: any; navigatedTo: any = null; onClick() { this.navigatedTo = this.linkParams; } }
并在测试中使用存根的RouterLink
以上是大佬教程为你收集整理的Angular2单元测试错误:无法绑定到’routerLink’,因为它不是’a’的已知属性全部内容,希望文章能够帮你解决Angular2单元测试错误:无法绑定到’routerLink’,因为它不是’a’的已知属性所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。