2014-09-22 2 views
1

У меня есть текстовое поле FromDate в моем сценарии, как:Jasmine.js: Как spyOn выпадающего списка

 var fromDate = document.getElementById('fromDate').value; 

Я знаю, как spyOn это текстовое поле в jasmine.js:

var params = { 
    'fromDate': { value: '01/01/2010' }, 
     }; 

     beforeEach() { 
     spyOn(document, 'getElementById').and.callFake(function (arg) { 
      return params[arg]; 
     }); 
     } 

Точно так же я также извлечения значения из выпадающего списка в сценарий, как:

var invId = $('#cboInv').find('option:selected').val(); 

Теперь, как я шпионить за это? Пожалуйста помоги.

+0

Похоже, что вам нужно сделать что-то вроде 'spyOn (. $ П,«найти»)' как упоминалось в вопросе здесь http://stackoverflow.com/questions/22060119/spying-on-jquery-selector-in-jasmine Или Googling для "jasmine spyon jquery selector" возвратил много хитов, которые могли бы вам помочь. Если вы найдете ответ, пожалуйста, укажите его здесь, чтобы другие люди могли учиться на нем. –

ответ

1

Я нашел способ издеваться над этим.

Поскольку это прикованный вызов, в функции spyOn() нам нужен другой способ издеваться val() также:

spyOn($.fn, 'find').and.callFake(function (arg) { 
    var valInternal = function() { 
     return 'myCustomId'; 
    }; 
    return { 
     val: valInternal 
    }; 
}); 
Смежные вопросы