带有 iframe 的茉莉花装置
jasmine fixtures with 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);
});
});
您需要在 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() 调用之前。
我正在使用 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);
});
});
您需要在 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() 调用之前。