2015-06-30 70 views
0

在JavaScript中多個jQuery選擇,我有一個功能,我想用茉莉花2.1.3測試:茉莉花:刺探調用同樣的功能

function someFunction(){ 
    var $firstSelector = $("#firstSelector").val(); 
    var $secondSelector = $("#secondSelector").val(); 

    // some function logic 
} 

我怎樣才能在$間諜firstSelector.val()$ secondSelector.val()爲每個測試我的函數提供定義的返回值? 例如(我想窺探$ firstSelector.val()返回「Hello」和$ secondSelector.val()返回「World」)

我讀過的答案暗指偵察通用$ .fn並返回val的值。但我不確定它將如何控制手動設置傳入的不同JQuery選擇器的返回值。有沒有一個概念在這裏我失蹤了?

對於使用不同選擇器作爲參數嘲笑JQuery $(someSelectorVariable).val()這種控制級別有可能嗎?

回答

0

因此,我基本上在$ .fn和使用callFake。在匿名函數內,我能夠訪問this.selector屬性。從那裏很簡單。我希望這可以幫助任何人!

spyOn($.fn, "val").and.callFake(function() { 
       switch (this.selector) { 
        case "#firstSelector": 
         return "somethingElse"; 
        case "#secondSelector": 
         return ""; 
        default: 
         return ""; 
       } 
});