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

它可以用作一种保障措施,以确保您没有以某种方式编写无法运行的测试。如果你养成了编写预期数量的测试的习惯,如果你曾经以某种方式编写了一个测试套件,其中一个测试由于某种原因对 QUnit 隐藏,QUnit 会在你之前选择它。

于 2014-03-11T14:34:20.370 回答