私は、オブジェクトの編集に使用されるコンポーネントの単体テストを行っています。オブジェクトには、id
サービスでホストされているオブジェクトの配列から特定のオブジェクトを取得するために使用される一意の があります。特定のオブジェクトは、id
ルーティング、具体的にはクラスを介して渡されるパラメーターを通じて取得されますActivatedRoute
。
コンストラクタは次のとおりです。
constructor(private _router:Router, private _curRoute:ActivatedRoute, private _session:Session) {}
ngOnInit() {
this._curRoute.params.subscribe(params => {
this.userId = params['id'];
this.userObj = this._session.allUsers.filter(user => user.id.toString() === this.userId.toString())[0];
このコンポーネントで基本的な単体テストを実行したいのですが、パラメータを挿入する方法id
やコンポーネントがわかりません。ニーズこのパラメータ。
ちなみに、このSession
サービスのモックはすでにあるので、心配はいりません。
ベストアンサー1
これを行う最も簡単な方法は、useValue
属性を使用して、モックする値の Observable を提供することです。
RxJS < 6
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/observable/of';
...
{
provide: ActivatedRoute,
useValue: {
params: Observable.of({id: 123})
}
}
RxJS >= 6
import { of } from 'rxjs';
...
{
provide: ActivatedRoute,
useValue: {
params: of({id: 123})
}
}