Search code examples
javascripttestingqunit

Expecting a timeout in QUnit


I have an asynchronous QUnit test where the test should pass if the operation times out. (I'm testing that if you omit an optional errorCallback and do something that throws an error, basically nothing happens no matter how long you wait.)

How would I do that? If I use Qunit.config.testTimeout then the test will fail on timeout. I want to set a timeout and have the test succeed when the timeout is reached.


Solution

  • Why not just go with a setTimeout call making the test succeed?

    e.g.:

    expect(1);
    stop();
    doOperation(function () {
        start();
        ok(false, "should not have come back");
    });
    setTimeout(function () {
        start();
        ok(true);
    }, timeoutValue);