- ActivatedRouteStubの作成: ActivatedRouteをモックするために、ActivatedRouteStubクラスを作成します。以下は、その例です。
import { BehaviorSubject } from 'rxjs';
export class ActivatedRouteStub {
private subject = new BehaviorSubject(this.testParams);
params = this.subject.asObservable();
private _testParams: {};
get testParams() {
return this._testParams;
}
set testParams(params: {}) {
this._testParams = params;
this.subject.next(params);
}
}
- TestBedの設定: テストベッド(TestBed)を使用して、Angularコンポーネントのテスト環境を設定します。以下は、ActivatedRouteStubを使用してテストベッドを設定する例です。
- テストコードの実装: テストコード内で、ActivatedRouteStubのtestParamsプロパティを使用して、パラメータを設定します。これにより、テスト対象のコンポーネントで正しいパラメータを受け取ることができます。
import { Component } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
@Component({
selector: 'app-your-component',
template: `
<div>{{ id }}</div>
`,
})
export class YourComponent {
id: string;
constructor(private route: ActivatedRoute) {
this.route.params.subscribe((params) => {
this.id = params['id'];
});
}
}
上記の例では、テスト対象のコンポーネントでActivatedRouteを使用してパラメータを取得しています。テストコード内でActivatedRouteStubのtestParamsを設定することで、テスト対象のコンポーネントが正しいパラメータを受け取ることができます。