2014-11-14 95 views
0

现在我有以下代码...更改消息进行

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

问题是,当时间到我得到以下信息...

Error: Timeout - Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL.

我可以将此消息更改为更具体的内容?

回答

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;

茉莉花抛出一个超时错误,确实有a mocksetInterval前和setTimeout,它们可让您同步运行该代码,并保存所有浪费的时间。