Доброго времени суток.
Осваиваю
мануал по BDD с помощью Jasmine.
Там есть замечательная возможность тестирования функций вроде setTimeout() с помощью jasmine.clock(), но в синхронном режиме.
Можно ли манипулировать временем через jasmine.clock() при тестировании асинхронных функций, когда используется вызов done()?
Вот, скажем, ниже код на основе примеров туториала. Можно ли с помощью jasmine.clock() сократить ожидание вызова коллбэков и, если можно, то как это правильно сделать?
describe("long asynchronous specs", function() {
var value;
beforeEach(function(done) {
jasmine.clock().install();
});
beforeEach(function(done) {
value = 0;
done();
}, 10000);
jasmine.clock().tick(10001);// чтобы не ждать 10 с в предыдущем блоке beforeEach
it("takes a long time", function(done) {
setTimeout(function() {
value++;
expect(value).toBeGreaterThan(0);
done();
}, 9000);
//jasmine.clock().tick(9001);
}, 10000);
jasmine.clock().tick(10001);// чтобы не ждать 10 с в предыдущем блоке beforeEach
afterEach(function(done) {
done();
}, 1000);
afterEach(function(done) {
jasmine.clock().uninstall();
});
});