Javascript 如何在下面的场景中使用Jasmine模拟window.location.href

Javascript 如何在下面的场景中使用Jasmine模拟window.location.href,javascript,unit-testing,jasmine,window.location,Javascript,Unit Testing,Jasmine,Window.location,我有下面的测试方法 Item.prototype.getItemID = function() { try { var url = window.location.href.toLowerCase(); var queryString = 'advertid'; queryString = queryString.replace(/[\[\]]/g, "\\$&"); var regex = new RegExp("[?&]" + qu

我有下面的测试方法

Item.prototype.getItemID = function() {
  try {

    var url = window.location.href.toLowerCase();

    var queryString = 'advertid';

    queryString = queryString.replace(/[\[\]]/g, "\\$&");

    var regex = new RegExp("[?&]" + queryString + "(=([^&#]*)|&|#|$)");

    var results = regex.exec(url);

    if (!results)

      return null;

    if (!results[2])

      return '';

    return decodeURIComponent(results[2].replace(/\+/g, " "));

  } catch (Error) {

    console.log(Error.message);

    return null;

  }

};
我已经写了下面的Jasmine测试代码

describe("Call getItemID to get querystring 'AdvertID' value", function() {

  var localContext = {

    "window": {

      location: {

        href: "https://server/sites/abc/def/pages/item.aspx?advertid=2"

      }

    }

  }

  it('Passes - if getItemID returns actual querystring value', function() {

    with(localContext) {

      expect(Item.prototype.getItemID()).toEqual(2);

    }

  });

});
但是,当调用getItemID()时,href组件会给出当前url,而不是我想要的url

请建议实现这一目标的方法。谢谢