テスト中の私の方法は次のとおりです。
/**
* Update properties when the applicant changes the payment term value.
* @return {Mixed} - Either an Array where the first index is a boolean indicating
* that selectedPaymentTerm was set, and the second index indicates whether
* displayProductValues was called. Or a plain boolean indicating that there was an
* error.
*/
onPaymentTermChange() {
this.paymentTerm.valueChanges.subscribe(
(value) => {
this.selectedPaymentTerm = value;
let returnValue = [];
returnValue.push(true);
if (this.paymentFrequencyAndRebate) {
returnValue.push(true);
this.displayProductValues();
} else {
returnValue.push(false);
}
return returnValue;
},
(error) => {
console.warn(error);
return false;
}
)
}
お分かりのように、paymentTerm は Observable を返すフォーム コントロールであり、その後サブスクライブされ、戻り値がチェックされます。
FormControl の単体テストに関するドキュメントが見つからないようです。最も近いのは、Mocking Http requests に関するこの記事です。これは、Observable を返すのと同様の概念ですが、完全には当てはまらないと思います。
参考までに、私は Angular RC5 を使用しており、Karma でテストを実行しています。フレームワークは Jasmine です。