stubbing jQuery.fn方法在Chrome和Firefox中运行良好,IE8失败

时间:2012-11-09 18:31:16

标签: jquery qunit sinon

我正在使用QUnit编写一系列使用sinon存根的测试。测试的方法依赖于我们称之为Foo的自定义插件,我将这样插入:

// setup
var stub = this.stub(jQuery.fn, "Foo").returns("");

// run
someProprietyMethod();

// assertions
equal(stub.args.length, 3);
equal(stub.args[0], "bar");
equal(stub.thisValues[0], "#some-selector");
// other assertions

与手动创建存根相比,我发现使用sinon存根非常简单直观。问题是这在Chrome和Firefox中运行良好,但不适用于IE8。

对于测试结果中的IE8,我得到:

Died on test #1 undefined: Object doesn't support this property or method

在测试代码中放置一些调试面包屑,它看起来像$()。Foo和$ .fn.Foo都被视为方法,但测试在$(“#some-selector”)之后停止运行.Foo( )在IE8中运行时被调用。

1 个答案:

答案 0 :(得分:0)

我最终编写了自己的存根库,因为现有的存根库似乎无法存根jQuery的原型。

当你想要测试那个上下文时,其中一个问题似乎是丢失了'this'的上下文 - 我这样做了。