如何使用jasmine测试jquery选择器

时间:2018-02-14 17:41:15

标签: javascript angularjs jasmine

我们需要测试一个评估元素顶部位置的函数。在以下示例中,id为'test'的元素。

function xxx(){
    var element = $('#test');
    return element[0].getBoundingClientRect().top;
}

为了用茉莉花测试这个功能,我们尝试了以下测试方法:

var myObj = {
                name: 'test',
                getBoundingClientRect: function () {
                    return {top: 100}
                }
            }

spyOn($('#test'), 'getBoundingClientRect').and.returnValue([myObj]);

并收到错误:

Error: <spyOn> : getBoundingClientRect() method does not exist
    Usage: spyOn(<object>, <methodName>) (line 4740)

1 个答案:

答案 0 :(得分:1)

包括我的评论作为答案。

getBoundingClientRect不是jquery的一部分,因此当你监视它时,你将无法从中获取值。

相反,您可以直接传递元素document.querySelector(&#34; #test&#34;)。

spyOn(document.querySelector("#test"), 'getBoundingClientRect').and.returnValue([myObj]);