10

最近 QUnit を使用して JavaScript の単体テストを開始しましたが、ドキュメントの機能に少し混乱しています: expect().

ドキュメントによると、次のexpect()ように設計されています。

[s]テスト内で実行されると予想されるアサーションの数を指定します。

そして、これが彼らが与える例です:

test( "a test", function() {
  expect( 2 );

  function calc( x, operation ) {
    return operation( x );
  }

  var result = calc( 2, function( x ) {
    ok( true, "calc() calls operation function" );
    return x * x;
  });

  equal( result, 4, "2 square equals 4" );
});

ここで目にするのはメンテナンスの悪夢だけです。テストにアサーションを追加するたびに、その数を更新する必要があります。そうしないと、テストは失敗します。この種の機能の実用的なアプリケーションはありますか?

4

2 に答える 2

10

ここで目にするのはメンテナンスの悪夢だけです... この種の機能の実用的なアプリケーションはありますか?

まあ、私expectが意図されているのは、グループ化された意味のあるタスクを使用することです。イベントやコールバックをテストするのに役立ちます。次に例を示します。

test('trigger an event', function() {
  expect(1);

  $('div')
    .on('click', function() { ok(1) });
    .trigger('click');
});

2 つまたは 3 つのアサーションしか想定されていない小さなテストにグループ化された意味のあるタスクを保持していれば、悪夢にはなりません。

于 2013-02-21T01:52:04.520 に答える
3

これは、実行できないテストを何らかの方法で作成していないことを確認するためのセーフガードとして使用できます。予想される数のテストを作成する習慣を身につけた場合、何らかの理由で 1 つのテストが QUnit から隠されているテスト スイートを何らかの方法で作成した場合、QUnit はあなたよりも先にこれを取得します。

于 2014-03-11T14:34:20.370 に答える