gpt4 book ai didi

jquery - stub jQuery.fn 方法在 Chrome 和 Firefox 中工作正常,IE8 失败

转载 作者:行者123 更新时间:2023-12-01 01:49:49 24 4
gpt4 key购买 nike

我正在使用 sinon stub 和 QUnit 编写一系列测试。测试的方法依赖于我们称为 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

我发现与手动创建 stub 相比,使用 sinon stub 非常简单且直观。问题是这在 Chrome 和 Firefox 中工作正常,但在 IE8 中不行。

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

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

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

最佳答案

我最终编写了自己的 stub 库,因为现有的 stub 库似乎无法 stub jQuery 原型(prototype)。

如果您想测试该上下文(我就是这样做的),那么当您 stub 一个方法时,问题之一似乎会丢失“this”的上下文。

关于jquery - stub jQuery.fn 方法在 Chrome 和 Firefox 中工作正常,IE8 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13313897/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com