当前,我已经实现了一个检测器,该检测器可以基于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都不起作用。我只是不知道为什么会这样。我应该如何模拟一些自定义尺寸的窗口?任何帮助将不胜感激。