我有以下测试方法。
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而不是我想要的东西。
请建议实现这一目标的方法。谢谢