我们需要测试一个评估元素顶部位置的函数。在以下示例中,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)
答案 0 :(得分:1)
包括我的评论作为答案。
getBoundingClientRect不是jquery的一部分,因此当你监视它时,你将无法从中获取值。
相反,您可以直接传递元素document.querySelector(&#34; #test&#34;)。
spyOn(document.querySelector("#test"), 'getBoundingClientRect').and.returnValue([myObj]);