осветителни тела жасмин с iframe

Използвам jasmine fixtures и искам да напиша тест с HTML, който има iframe в него.

Проблемът е, че тестът се изпълнява преди моята iframe да се зареди.
Има ли решение за това в самата библиотека?
Или ще трябва да внедря собствен механизъм, за да го накарам да чака?

Ето кода:

Приспособлението:

<iframe id="test-iframe1" class="test-iframe1" src="data/tests/pages/iframe1.html" style="width: 400px; height: 600px;" frameborder="20"></iframe>

Тестът:

describe("iframe -", function() {

    beforeEach(function() {
        var f = jasmine.getFixtures();
        f.fixturesPath = 'base/tests/pages/';
        f.load('iframe-main.htm');
    });

    it('iframe exists', function() {
        // HERE - the iframe has not yet loaded
        expect($('#test-iframe1').length).toBe(1);
    });
});

person Malki    schedule 04.03.2015    source източник


Отговори (1)


Трябва да добавите функция done() в beforeEach(), където ще проверявате зареждането на iframe

JS

 beforeEach(function(done) {
    var f = jasmine.getFixtures();
    f.fixturesPath = 'base/tests/pages/';
    f.load('iframe-main.htm');

    $('#test-iframe1').load(function(){
        done();
    });

});

И вашият it() няма да се изпълни преди извикване на done().

person Hennadii Shvedko    schedule 19.08.2015