Задать вопрос
Ответы пользователя по тегу JavaScript
  • Как перевести асинхронные тесты с JSTestDriver на Jasmine?

    Думаю, в вашем случае больше подойдет Jasmine версии 1.3 - jasmine.github.io/1.3/introduction.html

    У них была поддержка подобных штук - runs / waitsFor.

    var id = 0;
            runs(function() {
                setTimeout(function() {
                    console.log('1st');
                    id = 4;
                }, 5000);
            });
    
            waitsFor(function() {
                return id === 4; //если за 7секунд эта штука не вернет true, получим ошибку "timeout: timed out after 7000 msec waiting for id === 4" и дальше выполнение не пойдет
            }, 'id === 4', 7000);
    
            runs(function() {
                //в эту функцию мы перейдем, только после того как предыдущая waitsFor вернет true.
                console.log('2nd');
                expect(id).toEqual(4);
            });
    
            runs(function() {
                console.log('3rd');
                setTimeout(function() {
                    id = 8;
                }, 5000);
            });
    
            waitsFor(function() {
                return id === 8;
            }, 'id === 8', 7000);
    
            runs(function() {
                console.log('4th');
                expect(id).toEqual(8)
            });


    Для 2.0 единственное решение - заводить несколько it и делать done после каждого.. Но это не очень хорошее решение - не для того it предназначается.
    Ответ написан