2015-05-14 474 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 –

+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, ...);