2

私は現在、単体テストと QUnit の使用方法を学んでおり、これを行う最善の方法は、私が作成した小さな jQuery プラグインを使用することだと考えました。

プラグイン内で、次のようにイージング プラグインの方程式を使用してイージング オブジェクトを拡張しました。

$.extend( $.easing, {

    'ease-in': function (x, t, b, c, d) {
      return c*(t/=d)*t*t + b;
    },
    'ease-out': function (x, t, b, c, d) {
      return c*((t=t/d-1)*t*t + 1) + b;
    },
});

今、私は QUnit テスト内でこれを使用しようとしています:

equal(jQuery.easing['ease-in'],
      function (x, t, b, c, d) {return c*(t/=d)*t*t + b;},
      'ease-in returns correct function');

そしてそれは失敗します...何かが足りないのでしょうか、それともスティックのどこかで間違った端を持っていますか?

4

1 に答える 1

2

これは、単体テストが (通常) 行われる方法ではありません。メソッドのコードがテスト コードと等しいかどうかをテストする理由はありません (等しいことはわかっています!)。単体テストの目的は、結果が等しいことを確認することです。メソッドが結果を計算する方法は重要ではありません。

したがって、テストは次のようになります。

var easeIn = jQuery.easing['ease-in'];
equal(
    easeIn( 1, 2, 3, 4, 5 ),
    123  // or whatever the result should be
);
于 2011-10-12T15:28:18.593 に答える