2013-06-29 115 views
2

我有signup.js,其中包含一個函數名稱demo()。此函數調用帶有參數的另一個YUI庫函數:嘲笑YUI函數

Y.io('mywrongserver',callbackfunction); 

我要測試這個功能,但我想撥打電話到正確的服務器

Y.io('myrightserver',callbackfunction); 

這怎麼可能?我不想更改signup.js中的任何代碼,因爲它是由開發人員完成的。

我們可以利用嘲笑嗎?

代碼將是這樣的:

signup.js

demo : function(){ 
    alert('i am inside demo'); 
    // Some other stuff 
    callback = { 
     on :{ 
      success:function(x,o){ 
       // Some stuff here 
      } 
     } 
    } 
    // Now call to wrong server 
    Y.io("mywrongserver", callback); 

test.js

// Using JSMOCKITO APIs for YUI 
testDemo = function(){ 
    // Need to test demo function in signup.js But such that Y.io call to right server 
} 

感謝

+1

我投了票重新打開了這個。理由不明確。這不是代碼問題 - 這是一個關於模擬是否可用於測試的問題。答案似乎是肯定的 - 這就是嘲笑。但是我還沒有發佈答案,因爲我不知道是否有一個嘲笑圖書館來處理這個特殊情況。嘗試jsmockito似乎是顯而易見的事情,但我沒有時間。無論這個問題是否可以用jsmockito進行測試,在我看來都是一個完全正確的問題。 –

+1

答案確實是「是」。我沒有使用jsmockto,但我可以用一般的術語來回答它。基本上,你用自己的函數覆蓋'Y.io',測試'Y.io'是否通過了正確的參數。請重新打開該問題。 – juandopazo

+0

@DavidWallace - 關於模擬對象的主題以及如何創建它們的信息可以在YUI文檔中找到,或者使用Google。如果「是」是對這個問題的回答,那麼其他人不僅會使用Google或YUI/JSMockito自行解決這個問題,它也不是適合這種格式的問題。因此脫離主題。 –

回答

0

答案確實是「是」。我沒有使用jsmockto,但我可以用一般的術語來回答它。基本上,你用自己的函數覆蓋Y.io,測試Y.io是否通過了正確的參數。