我试图用这个来模拟$window
对象:
var mock$window = {
scrollTop : 150,
height : 600
};
$provide.value('$window', mock$window);
当我运行测试时,我可以获得$window.scrollTop()
值,但当我尝试使用$window.height()
时,我会收到Cannot use 'in' operator to search for 'height' in undefined
的错误。
模仿$windows
对象的正确方法是什么?
答案 0 :(得分:0)
这取决于$ window的使用方式以及您要测试的内容。在控制器中,您可以将其作为依赖项,您可以执行类似
的操作var $scope;
var mockWindow = {...};
beforeEach(inject(function(_$rootScope_, _$controller_) {
$scope = _$rootScope_.$new();
_$controller_('MainCtrl', {$window: mockWindow});
}));
您使用键和整数值将mock $ window定义为Object,但称为函数。