使用完成Jasmine更改超时消息

时间:2014-11-14 16:12:07

标签: jasmine

现在我有以下代码......

it("takes a long time", function(done) {});

问题是当它超时我收到以下消息......

  

错误:超时 - 超时内未调用异步回调   由jasmine.DEFAULT_TIMEOUT_INTERVAL指定。

我可以将此邮件更改为更具体的内容吗?

1 个答案:

答案 0 :(得分:0)

这是关于测试的错误,而不是您正在测试的代码的错误。如果您的测试已正确编写,则不应遇到该错误。测试本身是超时的。如果您正在编写测试以查看某些代码是否超时,那么您可以编写测试来处理该问题,而不是因为您未及时调用done()而导致测试错误。

// this function times out if passed "true" as second argument
function testThis(done, shouldTimeout) {
  setTimeout(function() {
    shouldTimeout || done();
  }, 500);
}

it("timed out", function(done) {
  var timedOut = false;
  setTimeout(function() {
    testThis(function() {
      // this shouldn't be called because we're telling `testThis` to timeout
      timedOut = true;
    }. true);
  });
  setTimeout(function() {
    expect(timedOut).toBeFalsy();
    done();
  }, 505);
});

如果您需要等待很长时间以查看是否超时,您可以通过更改jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000;

来更改Jasmine在测试引发超时错误之前等待的时间

Jasmine确实拥有setIntervalsetTimeout a mock,可让您同步运行该代码,并节省所有浪费的时间等待。