无法在Typescript茉莉花单元测试中使用window.open创建随机大小的模拟窗口

时间:2018-07-22 05:54:33

标签: typescript unit-testing jasmine mocking window.open

当前,我已经实现了一个检测器,该检测器可以基于window.mediaMatch()函数(主要是使用媒体查询)检测浏览器类型

class TypeDetector {
    public static getType($window: any): string {
        if( $window.matchMedia("(min-width: 1281px)").matches){
            return "HR desktop"
        }
        ....
    }
}

下一步是创建单元测试。我正在使用因果和茉莉 测试就像

describe("TypeDetector", () =>{
    let tempWindow = window.open("", "myWindow", "height=500, width=1300");
    it("test description", () => {
    // console.info("innerWidth  "+ tempWindow.innerWidth);
    // console.info("outerWidth  "+ tempWindow.outerWidth);
    // console.info("innerHeight  "+ tempWindow.innerHeight);
    // console.info("outerHeight "+ tempWindow.outerHeight);
    // console.info("client width "+tempWindow.document.documentElement.clientWidth);
    // console.info("client height "+tempWindow.document.documentElement.clientHeight);
    expect(TypeDetector.getType(tempWindow)).toBe("HR desktop");
    tempWindow.close();
});

无论我如何设置window.open函数的特征参数,创建的窗口始终是宽度:400和高度:300。我也尝试手动设置宽度和高度值,但它不起作用。甚至resizeTo和resizeBy都不起作用。我只是不知道为什么会这样。我应该如何模拟一些自定义尺寸的窗口?任何帮助将不胜感激。

0 个答案:

没有答案