Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Angular2单元测试错误:无法绑定到’routerLink’,因为它不是’a’的已知属性大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用单元测试(karma,jasmine)进行管理,我遇到了错误

我甚至没有更改由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();
  });
});

我应该改变什么?如何使它工作?

解决方法

可能重复 @L_616_17@

解决您的问题,请尝试存根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,请注明来意。