23

テスト中の私の方法は次のとおりです。

/**
   * 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 です。

4

1 に答える 1