Ожидая тайм-аут в QUnit - PullRequest
       11

Ожидая тайм-аут в QUnit

4 голосов
/ 13 января 2012

У меня есть асинхронный тест QUnit, где тест должен пройти, если время работы истекло.(Я проверяю, что если вы опустите необязательный errorCallback и сделаете что-то, что выдает ошибку, в принципе ничего не произойдет, независимо от того, как долго вы ждете.)

Как бы я это сделал?Если я использую Qunit.config.testTimeout, то тест не пройден по таймауту.Я хочу установить тайм-аут и успешно выполнить тест при достижении тайм-аута.

Ответы [ 2 ]

5 голосов
/ 05 июля 2012

Почему бы просто не выполнить вызов setTimeout для успешного прохождения теста?

Например:

expect(1);
stop();
doOperation(function () {
    start();
    ok(false, "should not have come back");
});
setTimeout(function () {
    start();
    ok(true);
}, timeoutValue);
0 голосов
/ 15 февраля 2015

Вот как я это делаю в следующих случаях (примерно):

function timeout(assert,to,error){
  var done = assert.async();
  var a = setTimeout(function(){
    assert.equal(to,undefined,error);
    done();
  },to); 
  return function(){
    done();
    clearTimeout(a);
  };
}

, тогда вы можете:

...
var done = timeout(assert,2000,"not joined");
r.join(function(data){
    assert.ok(true,"join confirmed");
    done();
})

Вы можете timeout выполнить функцию timeout(assert,to,toCB) и выполнитьtoCB вместо моего манекена assert.equal

...