我正在使用带有 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 中运行时。