我正在使用茉莉花装置,我想使用其中包含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);
});
});
解决方法:
您需要在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()调用之前运行.