与iframe的茉莉花装置

时间:2015-03-04 11:44:18

标签: javascript iframe jasmine fixtures

我正在使用jasmine fixtures,我想用一个包含iframe的HTML编写测试。

问题是测试是在我的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);
    });
});

1 个答案:

答案 0 :(得分:3)

您需要在beforeEach()中添加done()函数,您将在其中检查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()调用之前运行。