问题标签 [sinon]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
19547 浏览

node.js - 使用 Sinon 对 Mongoose 模型进行 Stub

我想为save特定模型中的 Mongoose 方法创建一个存根,以便我创建的模型的任何实例都将调用存根而不是普通的 Mongoosesave方法。我的理解是,这样做的唯一方法是像这样对整个模型进行存根:

不幸的是,这行代码导致我的测试抛出以下错误:

有谁知道这里出了什么问题?

0 投票
2 回答
2088 浏览

javascript - 用 casperjs 伪造 xmlhttprequests

我正在用 casperjs 编写端到端测试,并想伪造 ajax 服务器响应

我想出了一个想法,即包含一个模拟 xmlhttprequest 对象并始终返回我预期结果的简单脚本,如下所示

然后我打电话给setup_ajax我的 casper 测试

但看似未来的 ajax 请求仍然避免我的 xmlhttprequest 实现。

我试过运行 setup_ajax,使用 $.ready() 并从 casper 调用它,但这些都不起作用

更有趣的是,检查对象的存在奇怪地失败了。

但是 sinon 是正确包含的,至少当我在 setup_ajax 函数之外对其进行一些调用时,casper 没有导致任何错误,但是当我故意排除 sinon 时会导致错误。

您对在 casperjs 下模拟 xmlhttprequests 有什么想法吗?

0 投票
1 回答
1240 浏览

javascript - Sinonjs 无法读取未定义的属性“quoteStrings”

Sinon 给了我一些有趣的错误:

这是导致它的测试:

和被测代码:

更新:

事实证明,当我更新代码以通过测试时,我没有收到错误:

所以这一定和 sinon.js 期望失败有关。可能是一个 sinon.js 错误。

0 投票
3 回答
3946 浏览

unit-testing - Sinon.js(JS 模拟库)有哪些替代方案?

Sinon.js 有什么有价值的替代品吗?

谢谢。

0 投票
17 回答
105763 浏览

javascript - 如何在 JavaScript 单元测试中模拟 localStorage?

有没有可以模拟的库localStorage

我一直在使用Sinon.JS进行大多数其他 javascript 模拟,并且发现它真的很棒。

我的初步测试表明 localStorage 拒绝在 firefox 中分配(sadface)所以我可能需要对此进行某种破解:/

我现在的选择(如我所见)如下:

  1. 创建我所有代码都使用的包装函数并模拟它们
  2. 为 localStorage 创建某种(可能很复杂)状态管理(测试前的快照 localStorage,在清理恢复快照中)。
  3. ??????

您如何看待这些方法,您认为还有其他更好的方法可以解决这个问题吗?无论哪种方式,我都会将最终制作的“库”放在 github 上,以实现开源优势。

0 投票
1 回答
175 浏览

javascript - Javascript单元测试依赖项-当依赖对象更改时如何使测试失败

我有一个依赖于模型属性的控制器。我编写了一个测试该控制器并存根模型的测试,当模型属性名称更改时,如何使我的控制器测试失败?

这是一个例子:

模型:

控制器:

控制器测试:

只要“name”属性更改为其他内容,例如“name2”,我希望此测试失败。

有人对如何在 javascript 中执行此操作有很好的建议吗?

谢谢, 夏

0 投票
1 回答
1519 浏览

javascript - 如何将假服务器从诗浓转换为茉莉花。

我找到了一个如何使用 Sinon 创建假服务器的示例。
这是代码(1),(2)。

只用茉莉花就可以做同样的事情吗?
如果是。我应该如何重写代码 (1) 和 (2) ?


(1)


(2)

0 投票
1 回答
2061 浏览

node.js - 如何使用 process.nextTick 进行测试

我正在使用Mocha测试一些Node.js代码,并想用它process.nextTick()来调用方法的回调。

编码

考试

由于某种原因,done()当我运行 mocha 时,我得到了一个被调用两次的错误。如果我在process.nextTick().

0 投票
1 回答
1387 浏览

unit-testing - 使用 Backbone 防止 Jasmine 和 Sinon 的 AJAX 调用

我刚刚开始使用 Sinon 和 Jasmine 测试我的 Backbone 应用程序。我有一个看起来像 (coffeescript) 的视图:

我想用一个未获取的集合来测试它,但我不确定如何在我的代码中伪造一个 ajax 调用(显然可以在规范中轻松完成)。我意识到我可以只传入一个预取的集合,但我很好奇——Sinon 是否可以覆盖 fetch 函数以返回虚假响应?

感谢您的任何帮助。

0 投票
9 回答
105443 浏览

javascript - 轻松清理 sinon 存根

有没有一种方法可以轻松地重置所有可以与 mocha 的 beforeEach 块一起干净地工作的 sinon spys 模拟和存根。

我看到沙盒是一种选择,但我看不出如何为此使用沙盒