【问题标题】:Javascript unit test mock Height functionJavascript单元测试模拟高度函数
【发布时间】:2018-03-21 15:06:45
【问题描述】:

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

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 不是函数

但是,这种在其他对象上定义函数的方法似乎很有效。模拟这个窗口函数有什么我缺少的吗?

谢谢!

【问题讨论】:

    标签: javascript mocha.js sinon


    【解决方案1】:

    这里的问题是我没有为我的测试模拟出正确的选定对象,因此缺少函数。代码是:

    mockedWindow = {
        screenY: () => {return windowTop;},
        height: () => {return windowBottom;}
    };
    
    myStub['$'] = (element) => {
        if (element === window.document) {
            return [mockedDocument];
        } else if(element === window) {
            return mockedWindow;
        }
    };
    

    【讨论】:

      猜你喜欢
      • 2010-11-17
      • 1970-01-01
      • 2015-12-06
      • 2022-08-10
      • 2017-09-04
      • 2015-09-16
      • 2018-07-22
      • 2021-09-10
      • 2015-11-13
      相关资源
      最近更新 更多