私はrouteLinkを使用している最も簡単なコンポーネントを書いていますとコンポーネントのテスト:私はこのコンポーネントをテストしようとすると、角度2:ルータ
@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;
}
問題が発生します。私はカルマが不足しているプロバイダ文句を言っているルータのリンクを追加瞬間:すべてのプロバイダを追加した後
をカルマ求めている私はこれを取得:
beforeEachProviders(() => [
MemorySnippetComponent,
MEMORY_SERVICE_PROVIDERS,
ROUTER_PROVIDERS,
ApplicationRef
]);
をしかし、私は、テストを実行すると、私はこのエラーを取得:
EXCEPTION: EXCEPTION: Error during instantiation of Token RouterPrimaryComponent! (RouterLink -> Router -> RouteRegistry -> Token RouterPrimaryComponent).
ORIGINAL EXCEPTION: unimplemented
ORIGINAL STACKTRACE: Error: unimplemented
何が間違っていますか? Angular 2(2.0.0-beta.1)は、ルータ指令でコンポーネントをテストする準備ができていませんか?
。まだベータ版であり、この種のテストではテストガイドは公開されていません。おそらく、ソースでRouterPrimaryComponentを見つけてインタフェースを実装し、 'provide(RouterPrimaryComponent、{useClass:MyRouterPrimaryComponent})'を使ってそれをオーバーライドし、おそらくあなたのテストを動作させることができます。 – SnareChops
Angularチームのテストシードでレポを確認してください - > https://github.com/juliemr/ng2-test-seed this talk https://www.youtube.com/watch?v=C0F2E-PRm44 –
構文には返答が必要ないのですか? 'beforeEachProviders(()=> {戻り値[ MemorySnippetComponent、 MEMORY_SERVICE_PROVIDERS、 ROUTER_PROVIDERS、 ApplicationRef ]}); –