我正在编写使用routeLink的最简单的组件:
@Component({
selector: 'memorySnippet',
templateUrl: '<div class="memory-snippet-wrapper" *ngIf="memory"
[routerLink]="['MainPanel', 'MemoryPanel', {'id' : this.memory.id}]">',
directives: [CORE_DIRECTIVES, ROUTER_DIRECTIVES]
})
export class MemorySnippetComponent {
@Input() memory: Memory;
}
当我尝试测试该组件时出现问题。当我添加路由器链接时,Karma 正在抱怨缺少提供商:
添加 Karma 要求的所有提供商后,我得到以下信息:
beforeEachProviders(() => [
MemorySnippetComponent,
MEMORY_SERVICE_PROVIDERS,
ROUTER_PROVIDERS,
ApplicationRef
]);
但是当我运行测试时,我收到此错误:
异常: 异常: Token RouterPrimaryComponent 实例化期间出错! (RouterLink -> 路由器 -> RouteRegistry -> 令牌 RouterPrimaryComponent)。
原始异常:未实现
原始堆栈跟踪:
错误:未实现
我究竟做错了什么??? Angular 2 (2.0.0-beta.1) 是否还没有准备好使用路由器指令测试组件?
你应该有一个beforeEachProviders
方法如下:
import {MockApplicationRef} from '@angular/core/testing';
beforeEachProviders(() => [
ROUTER_PROVIDERS,
provide(APP_BASE_HREF, {useValue: '/'}),
provide(ROUTER_PRIMARY_COMPONENT, {useValue: YourComponent}),
provide(ApplicationRef, {useClass: MockApplicationRef}
]);
MockApplicationRef
由此类测试的框架提供。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)