我正在尝试测试一种方法,其中它所做的一件事就是锁定屏幕的方向。然而,Jasmine在行中抛出错误:
(<any>window).screen.orientation.lock('portrait')
说undefined is not a constructer
。
我甚至尝试过不使用打字稿类型而只使用window.screen.msOrientationLock('landscape')
和其他window.screen方法,但我得到了同样的错误。我的_$window_
也注入beforeEach
。
测试它是否锁定不是我测试的必要部分,因此有一些方法可以跳过此特定行或更正此错误。谢谢:)
答案 0 :(得分:0)
这很容易。我必须注入窗口对象并将其分配给全局beforeEach
中的全局变量,如下所示:
$window = _$window_
;
然后,下一个问题是,orientation
对象中的属性window.screen
不可用。我只需要在我的规范中嘲笑它:
$window.screen.orientation = {
lock: function() { return; }
};
在监视/调用其中包含window.screen.orientation.lock
方法的方法之前,必须这样做。