2013-07-23 5 views
4

Я хочу проверить, вызвано ли window.location.assign, и поэтому я пытаюсь использовать spyOn(window.location, 'assign');, но метод не перезаписывается.Шпионаж по неизменяемым нативным методам

Есть ли какие-либо другие подходы, которые я могу использовать для поиска собственных методов, которые нельзя перезаписать?

ответ

1

Что вы можете сделать, это создать оболочку из непреложной функции в классе:

MyClass.prototype.locationAssign = function() { 
    window.location.assign.apply(window.location, arguments); 
} 

и шпионить по этому методу.

spyOn(MyClass, 'locationAssign');