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;
}
};
我正在尝试编写一个测试视口功能的单元测试。为了确定视口,我使用了这些函数:
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;
}
};