【问题标题】:Sinon: spy on jquery function callSinon:监视 jquery 函数调用
【发布时间】:2015-05-13 22:28:20
【问题描述】:

我如何检查是否

$("#myElement").change();

被调用了吗?

我试过了

spy = sinon.spy($("#myElement"), "change");

然后

expect(spy).toHaveBeenCalled();

【问题讨论】:

    标签: jquery jasmine sinon


    【解决方案1】:

    您可以通过保留对它的引用来“覆盖”jquery 的更改函数,然后用您自己的函数替换原始引用。新函数完成后,通过 function.apply() 调用原始函数,确保使用正确的上下文(即 this)调用它,如下所示:

    var oldChange = $.fn.change; 
    $.fn.change = function(args) { 
      console.log("change triggered", args); 
      oldChange.apply(this,args); };
    }
    

    但不确定这是否被认为是最佳做法。还有其他人愿意对此进行权衡吗?

    【讨论】:

      猜你喜欢
      • 2016-01-02
      • 2013-07-21
      • 2020-05-23
      • 1970-01-01
      • 1970-01-01
      • 2013-01-25
      • 1970-01-01
      • 2015-06-30
      • 1970-01-01
      相关资源
      最近更新 更多