1
私はAngular 2コンポーネントの単体テストを記述しようとしていますが、それ以上は行っていませんが、RouteConfigのパスが'/ documents'に設定します。テンプレートに<router-outlet></router-outlet>
が含まれていることを確認するテストもしたいと思います。RouteConfigと他のデコレータをAngular 2コンポーネントでテストする方法
これは私のコンポーネントです:
import { Component } from 'angular2/core';
import { CanActivate, RouteConfig, ROUTER_DIRECTIVES } from angular2/router';
import DocumentsComponent from './documents/documents.component';
@Component({
template: `
dashboard
<router-outlet></router-outlet>
`,
directives: [
ROUTER_DIRECTIVES,
]
})
@CanActivate((next, prev) => {
// check if user has access
return true;
})
@RouteConfig([
{
path: '/documents',
name: 'Documents',
component: DocumentsComponent,
useAsDefault: true,
}
])
export default class DashboardComponent {
public name: string = 'John';
sayHello(): string {
return `Hello ${this.name}`;
}
}
そして、これが私のテスト(私はジャスミンを使用しています)です:あなたがいずれかを発見していない場合は
import DashboardComponent from './../app/dashboard/dashboard.component';
import {describe, it, beforeEach, expect} from 'angular2/testing';
describe('My DashboardComponent',() => {
var dashboard: DashboardComponent = null;
beforeEach(function() {
dashboard = new DashboardComponent();
});
it('should have its path set to "/documents"', function() {
// ???
});
it('should have "<router-outlet></router-outlet>" in its template', function() {
// ???
});
it('should have name property', function() {
expect(dashboard.name).toBe('John');
});
it('should say hello with name property', function() {
expect(dashboard.sayHello()).toBe('Hello John');
});
});
ありがとうございます!これは私が探していたものだった。 –
あなたは大歓迎です!その記事全体がかなり良いです、私は全体を読むことをお勧めします。 –