как использовать window.location в модульном тесте?

Я тестирую одну функцию контроллера. Я использовал window.location Но я не уверен, нужно ли писать тестовые случаи?

я пишу этот код

 $scope.abc='test1'
    var params ={name:'pqr',class:'sss'}
     var location = window.location;
        document.location = location.protocol + '//' + location.host + location.pathname + '?' +
            $.param(params);
  }

вот мой плунжер

http://plnkr.co/edit/ZEnWMOJo6qVhjntQM6RD?p=info

какие тесты нужно писать? как проверить document.location ? test.js

describe('value check',function(){
  var $scope,
  ctrl,
  cntrl,
  $httpBackend;
  beforeEach(function(){
    module('app');

  });


beforeEach(inject(function($rootScope,$controller) {
    $scope = $rootScope.$new();  

       cntrl = $controller('cntrl', {'$scope' : $scope });


}));



   it("check variable", function() {
     $scope.test();
     expect($scope.abc).toEqual('test1')
  });


})

person user944513    schedule 29.10.2016    source источник
comment
Вместо этого используйте службы $window и $document. Используйте внедрение зависимостей, чтобы получить их, и внедрите макеты в свой тест.   -  person JB Nizet    schedule 29.10.2016
comment
Я использовал $window и $document... но как проверить параметр? plnkr.co/edit/Xqptw3m5wcWljO5fy15I?p=preview   -  person user944513    schedule 30.10.2016
comment
Вы не издевались над услугами. См. plnkr.co/edit/nUeGP0T5mqF1WhWkL14g?p=preview. В вашем коде есть ошибка BTW. Результат спецификации дает понять это.   -  person JB Nizet    schedule 30.10.2016
comment
спасибо за помощь в чем проблема? почему этот тест не проходит?   -  person user944513    schedule 30.10.2016
comment
Просто прочитайте сообщение об ошибке: Expected 'http//fake.host.com/foo?name=pqr&class=sss' to be 'http://fake.host.com/foo?name=pqr&class=sss'. Между двумя URL-адресами есть тонкое, но важное различие.   -  person JB Nizet    schedule 30.10.2016