Jasmine.js:如何窥探下拉列表

时间:2014-09-22 12:24:23

标签: javascript angularjs unit-testing jasmine

我的脚本中有一个fromDate文本字段:

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

我知道如何在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();

现在我该怎么监视这个?请帮忙。

1 个答案:

答案 0 :(得分:1)

我找到了模仿它的方法。

因为它是一个链式调用,在spyOn()函数中我们还需要另一种方法来模拟val()

spyOn($.fn, 'find').and.callFake(function (arg) {
    var valInternal = function () {
        return 'myCustomId';
    };
    return {
        val: valInternal
    };
});