我正在尝试编写一个测试视口功能的单元测试。要确定视口我正在使用这些函数:
var windowTop = ($(window).pageYOffset || $(document).scrollTop);
var windowBottom = $(window).height() + windowTop;
在测试代码中,我实现了以下内容:
var windowTop = 0;
var windowBottom = 500;
mockedWindow = {
screenY: () => {return windowTop;},
height: () => {return windowBottom;}
};
如果我尝试访问的元素是window:
,则返回mockedWindow else if(element === window) {
return [mockedWindow];
}
我一直收到错误:$(...)。height不是函数
然而,这种在其他对象上定义函数的方法似乎有效。嘲笑这个窗口函数有什么我缺的吗?
谢谢!
答案 0 :(得分:0)
这里的问题是我没有为测试模拟出正确的所选对象,因此缺少功能。的代码是:
mockedWindow = {
screenY: () => {return windowTop;},
height: () => {return windowBottom;}
};
myStub['$'] = (element) => {
if (element === window.document) {
return [mockedDocument];
} else if(element === window) {
return mockedWindow;
}
};