2015-05-14 11 views
0

Прошу простить мое плохое знание архитектуры JS/JScript.Обертка для функции TestComplete «FindChild»

Я пытаюсь сохранить аргументы вызова FindChild для легкой печати для отладки. Я открыт для других путей для достижения этой цели, но нынешняя попытка включает в себя функцию-оболочку, в соответствии с this guide.

var FindChildParamsText = ""; 
(function() { 
    var copy = FindChild; 
    FindChild = function() {  
     FindChildParamsText = copy.arguments; 
     return copy.apply(this, arguments); 
    } 
})(); 

У меня возникли проблемы доступа оригинальный метод копирования. Является ли GetMethods чем-то, что я должен изучить? Если это так, накладные расходы станут больше, чем хотелось бы.

+0

В отличие от сайтов форума, мы не используйте «Спасибо», или «Любая помощь оценена», или подписи на [so]. См. «[Должны ли« Привет »,« спасибо », теги и приветствия удалены из сообщений?] (Http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be -removed-from-posts) –

+0

Если я правильно понимаю, этот метод предназначен только для функций - тех, которые называются 'func (...)'. Но FindChild - это метод объекта - 'obj.FindChild (...)' Вы, вероятно, не можете перехватывать методы таким же образом. – Helen

ответ

2

Написать функцию обертку, как это:

function FindChild(Obj, PropNames, PropValues, Depth, Refresh) 
{ 
    // Access PropNames and PropValues as you need 
    ... 

    var result = Obj.FindChild(Obj, PropNames, PropValues, Depth, Refresh); 
    return result; 
} 

и заменить все FindChild метод вызывает в тестах

obj.FindChild(...); 

с этой пользовательской функции:

FindChild(obj, ...);