2013-11-21 4 views
10

Просто повышен до жасмин 2.0 rc5 из 1.3 и теперь все мои тесты, которые использовали waits() сломаны, так как функция waits() и waitsFor() не определены. Я не могу найти никакой ссылки на это где-нибудь в Интернете, кто-нибудь знает, что новый API для замены wait()?Jasmine 2,0 гс * Уэйтс не определен

ответ

13

Ну, синтаксис использования асинхронных вызовов изменился. Вы можете легко увидеть различия между этими двумя версиями в его документаций:

Jasmine 1.3 Asynchronous support использует waitsFor() и run() функции.

Согласно Jasmine 2.0 Asynchronous support, эти функции были уничтожены из библиотеки. Однако Jasmine 2.0 добавляет асинхронную поддержку примитивам beforeEach(), afterEach() и it(). Функции обратного вызова, переданные этим функциям, теперь могут принимать аргумент, указывающий, может ли спецификация запускаться или не работать.

Затем, когда вы достигнете необходимых условий для запуска теста (всякий раз, когда ваша работа по асинхронному завершению завершена), вы просто вызываете done(). И все волшебство происходит;)

Из документации:

describe("Asynchronous specs", function() { 
    var value; 

    beforeEach(function(done) { 
     setTimeout(function() { 
      value = 0; 
      done(); 
     }, 1); 
    }); 

    it("should support async execution of test preparation and expectations", function(done) { 
     value++; 
     expect(value).toBeGreaterThan(0); 
     done(); 
    }); 
}); 

it() спецификации выше, будет работать только после setTimeout() вызова, потому что done() называется там. Обратите внимание, что обратный вызов it() принимает аргумент (done).

+0

Ухоженный, не видел, что 2.0 док поднялся! Спасибо за указатель – silkAdmin

0

Используйте jasmine.DEFAULT_TIMEOUT_INTERVAL = 5000

Пожалуйста, обратитесь ниже URL для Jasmine документации ... http://jasmine.github.io/2.0/introduction.html

Раздел является "Asynchronous Поддержка" в документации.

Смежные вопросы