1

我在为加载谷歌地图的页面编写测试时遇到困难。我总是收到错误

“无法读取未定义的属性‘offsetWidth’”

这意味着当地图脚本加载我用来保存地图的 div 时,可能已经被删除(我在 div 的样式属性中将宽度和高度设置为 100% 确保它具有宽度和高度) .

我正在以一种涉及 requirejs 的非常复杂的方式加载我的 gmaps 脚本,但我认为问题与此无关(即使我在运行 specRunner 时从 requirejs 收到错误,但一切正常)。

我应该如何测试这个?

4

1 回答 1

0

我用过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();
        } );
    } );
} );
于 2012-06-19T15:22:33.447 回答