2
Может быть, я не вижу, это ясно, но интересно:
Как издеваются и протестировать
$window
переменную?
Я использую $window
в следующей функции:
vm.showCampaignDetails = function(campaignId) {
vm.someFunction({ position:$window.pageYOffset });
$state.go('campaignDetails', { campaignId: campaignId });
};
Я называю showCampaignDetails из нг щелкните внутри мой взгляд:
<button ng-click"vm.showCampaignDetails(campaignID)">Details</button>
Теперь я хочу модульного тестирования это функция. Но независимо от того, что я делаю, я не могу издеваться над значением
$window.pageYOffset
.
Я попытался передать его через функцию, но это кажется глупым.
Итак, как мог выглядеть подход?
Это мой тест:
it('should navigate to campaign details and save the scrolling position', function() {
spyOn(vm, 'someFunction');
spyOn($state, 'go');
$window.pageYOffset = 1998;
vm.showCampaignDetails(13);
expect(vm.someFunction).toHaveBeenCalledWith({ position: 1998 });
expect($state.go).toHaveBeenCalledWith('campaignDetails', { campaignId: 13});
});
ARGH, быстрее меня! Отличная работа :) – trollr