我正在尝试编写一个测试来测试事件后调用的函数,但是我将此函数包装在 jquery 代理中,它似乎正在抛弃我的 sinon 间谍。
jquery 看起来像这样:
this.$modalcontent.on('change', '.js-qty-to-return', $.proxy(this.qtyChanged, this))
我的测试如下所示:
it('should trigger qtyChange function', function(done) {
var proxy = sinon.stub(jQuery, 'proxy');
$('.js-qty-to-return').trigger('change');
expect(proxy.calledWith(this.OrderHistoryTable.qtyChanged, this.OrderHistoryTable)).to.be.ok;
proxy.restore();
done();
});
我还尝试在测试上方的 before 函数中执行存根,我尝试使用 sinon spy 而不是存根,我也尝试对函数/方法本身进行存根,我已经验证了该函数确实被调用,它正在从触发器接收数据,并且一直按预期进行处理,但是当我检查 a 时,.called
它总是返回 false。
我可能只是忽略了一些简单的事情,任何建议或想法都是有帮助的。