Javascript 单元测试 mock 高度函数

Javascript unit test mock Height function

我正在尝试编写一个测试视口功能的单元测试。为了确定视口,我使用了这些函数:

var windowTop = ($(window).pageYOffset || $(document).scrollTop);
var windowBottom = $(window).height() + windowTop;

在测试代码中,我实现了以下内容:

var windowTop = 0;
var windowBottom = 500;
mockedWindow = {
    screenY: () => {return windowTop;},
    height: () => {return windowBottom;}
};

我 return 如果我尝试访问的元素是 window:

 else if(element === window) {
     return [mockedWindow];
 } 

我不断收到错误消息:$(...).height 不是函数

不过,这种在其他对象上定义函数的方法似乎可行。我在模拟这个 window 函数时遗漏了什么吗?

谢谢!

这里的问题是我没有为我的测试模拟出正确的选定对象,所以函数丢失了。代码是:

mockedWindow = {
    screenY: () => {return windowTop;},
    height: () => {return windowBottom;}
};

myStub['$'] = (element) => {
    if (element === window.document) {
        return [mockedDocument];
    } else if(element === window) {
        return mockedWindow;
    }
};