【发布时间】:2023-03-13 15:40:02
【问题描述】:
我正在使用带有 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 中运行时被调用。
【问题讨论】:
-
什么是$("#some-selector"),什么元素?
-
@Huangism 这是一个输入,将在 someProprietaryMethod() 中使用。存根 .Foo() 使这无关紧要。
-
euaul 是错字吗?不知道我明白...
-
@mjwenk 是的,只是一个错字。我更新了代码。