我正在尝试使用单元测试(业力,茉莉花)进行管理,但出现错误:
无法绑定到“ routerLink”,因为它不是“ a”的已知属性
我什至没有更改由angular-cli创建的* .spec.ts文件。
这是我的文件:
user-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>
Run Code Online (Sandbox Code Playgroud)
用户列表.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(...);
}
}
Run Code Online (Sandbox Code Playgroud)
用户列表.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();
});
});
Run Code Online (Sandbox Code Playgroud)
我应该改变什么?如何使其运作?
Angular 2 Jasmine 的可能副本无法绑定到“routerLink”,因为它不是“a”的已知属性
要解决您的问题,请尝试存根 RouterLink https://angular.io/guide/testing-components-scenarios#components-with-routerlink
@Directive({
selector: '[routerLink]',
host: {
'(click)': 'onClick()'
}
})
export class RouterLinkStubDirective {
@Input('routerLink') linkParams: any;
navigatedTo: any = null;
onClick() {
this.navigatedTo = this.linkParams;
}
}
Run Code Online (Sandbox Code Playgroud)
并在您的测试中使用存根 RouterLink
| 归档时间: |
|
| 查看次数: |
3506 次 |
| 最近记录: |