我在为加载谷歌地图的页面编写测试时遇到困难。我总是收到错误
“无法读取未定义的属性‘offsetWidth’”
这意味着当地图脚本加载我用来保存地图的 div 时,可能已经被删除(我在 div 的样式属性中将宽度和高度设置为 100% 确保它具有宽度和高度) .
我正在以一种涉及 requirejs 的非常复杂的方式加载我的 gmaps 脚本,但我认为问题与此无关(即使我在运行 specRunner 时从 requirejs 收到错误,但一切正常)。
我应该如何测试这个?
我在为加载谷歌地图的页面编写测试时遇到困难。我总是收到错误
“无法读取未定义的属性‘offsetWidth’”
这意味着当地图脚本加载我用来保存地图的 div 时,可能已经被删除(我在 div 的样式属性中将宽度和高度设置为 100% 确保它具有宽度和高度) .
我正在以一种涉及 requirejs 的非常复杂的方式加载我的 gmaps 脚本,但我认为问题与此无关(即使我在运行 specRunner 时从 requirejs 收到错误,但一切正常)。
我应该如何测试这个?
我用过waitFor()
,效果很好。
describe( "Test suite for the 'Event location' Box", function() {
it( "Should show the map when the appropriate checkbok is clicked and should hide it when clicked again", function() {
// Wait for the loading of the gmaps. This is simply when the <div> we use as a container has some html
waitsFor(function() {
return $('#ai1ec_map_canvas').html() !== '';
}, "gmaps never loaded", 15000 );
runs( function() {
$( "#ai1ec_google_map" ).click();
expect( $( '#ai1ec_map_canvas' ) ).toBeVisible();
$( "#ai1ec_google_map" ).click();
expect( $( '#ai1ec_map_canvas' ) ).not.toBeVisible();
} );
} );
} );