0

条件付きmatchMediaステートメントのテストと自動化に問題があります。多くの幅(この場合はデスクトップとタブレットの幅)をテストできる単体テストを作成したいと思います。

デバイス/メディアクエリ(例:this.setForTablet())ごとにテストを作成できますが、以下のミニコントローラーをテストするにはどうすればよいですか?

次のようなステートメントをテストする実用的な方法はありますか?次のようなステートメントを回避するためにコードをリファクタリングすることをお勧めしますか?

        if ( window.matchMedia('(max-width: 768px)').matches  ) { // View <= tablet
            this.setForTablet();
        } else { // View > tablet
            this.setForDesktop();
        }
4

1 に答える 1

0

リファクタリングして戻ります。

ミニコントローラーをリファクタリングして、さまざまな入力/幅を受け入れ、それぞれの場合に既知/期待値を返します。これらがテストアサーションになります。

matchMediaが意図したとおりに機能し、ユーザー/コーダー自身のコードのみをテストすることを期待する必要があります。

于 2012-07-31T03:29:44.393 に答える