问题标签 [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 投票
3 回答
1423 浏览

backbone.js - 学习单元测试和 Jasmine

我是前端开发人员,是 TDD 和 BDD 的新手。

我有这个任务。使用从 AJAX 调用接收到的 json 对象填充表。我将如何在套件和规范中描述这一点?

提前致谢

编辑

我将 BackboneJS 用于 MVC,将 sinon.js 用于间谍、存根等。

0 投票
1 回答
758 浏览

backbone.js - Backbone JS / Jasmine / Sinon:测试模型是否在事件发生后发生了变化

如何测试主干视图是否触发了事件,然后模型已更改?

0 投票
2 回答
1248 浏览

jquery - 如何显示单元测试 jquery 对话框?

我写了下面的代码,尝试测试一个 jquery 对话框是否得到原谅和显示。

但是,它向我显示了错误:在测试 #1 中死亡:尝试将未定义的属性对话框包装为函数 - {“消息”:“尝试将未定义的属性对话框包装为函数”,“名称”:“TypeError”}

jquery 代码很简单:

任何人都知道如何在这种情况下模拟 jquery 对话框并编写单元测试?

0 投票
1 回答
106 浏览

javascript - jsTestDriver:运行测试时出现org.jvyaml.ParserException

我尝试使用 jsTestDriver 运行 javascript 测试。当我开始测试时,发生了异常。

异常描述

当 jsTestDriver 的 .conf 文件在 args 中只包含一个文件路径时,不会出现该问题,例如:

0 投票
1 回答
1292 浏览

backbone.js - Jasmine + Sinon 规范中未填充主干集合提取

当我运行此规范输出时,我得到“预期 0 等于 2”。2 是我的夹具中模型对象的正确长度,因此 Sinon 的 fakeServer 正确响应了模拟响应。我无法弄清楚为什么我的 Collection 在 fetch 之后有零个对象。任何帮助将非常感激!

仅供参考:这是来自此处的 Backbone Sinon + Jasmine 教程:http: //tinnedfruit.com/2011/03/25/testing-backbone-apps-with-jasmine-sinon-2.html

规格:

模型:

编辑:

下面的 Buck Doyle 帮助我看到没有规格问题。我的 Jasmine Headless Webkit 配置存在某种问题,如果规范与 Jasmine 独立运行,它们就通过了。

0 投票
1 回答
578 浏览

backbone.js - Sinon + Backbone 规范在 Jasmine Headless Webkit 下失败,但在独立 Jasmine 中通过

我有一个 Backbone 集合规范(当然是 todos),它使用 Sinon 用夹具数据伪造服务器响应。这与独立的 Jasmine 一起通过,但在我的 Jasmine Headless Webkit 设置下失败。

失败是这样的:

Sinon 和我的夹具正确地返回了一个带有 2 个 todo 的假响应,但集合中没有解析任何 todo。

有一个小提琴显示所有这些都与 Jasmine 独立工作在这里

我的 Jasmine Headless Webkit 加载顺序如下:

和代码(当然也在小提琴中):

正在使用的一些工具对我来说是新的,所以我非常感谢任何帮助 - 谢谢!

0 投票
2 回答
9491 浏览

javascript - 如何使用 Sinon.js 存根事件发射器

我正在尝试存根以下内容:

如果第一个参数是“完成”,我只想调用回调。

我正在测试的功能还包含:

所以我不能只做会触发完整和错误回调的 yield 原因。

如果我不使用 sinon,我会通过编写以下内容来伪造它。

0 投票
1 回答
1795 浏览

javascript - 如何在茉莉花单元测试中根据其他对象测试功能

我有一个名为 Event 的主干模型的 jasmine 单元测试。

在这个模型中,我有一个功能:

它有 4 个依赖项:

  • 用户模型
  • 用户集合
  • 参与模式
  • 参与合集

我想单独测试所有模型,因为这是最佳实践,但我不确定如何。

我正在使用 sinon.js 进行模拟和存根,但不知道在这种情况下如何正确使用它。

谢谢!

0 投票
1 回答
1591 浏览

javascript - 使用 sinon.fakeServer 获取夹具数据

我正在尝试使用sinon.fakeServerorsinon.useFakeXMLHttpRequest和 require.js 模拟 Backbone.Model.fetch 请求。

这是我无法正常工作的代码 (1)

我的问题是:
如何使用 sinon.fakeServer 获取夹具数据?
请在这段代码末尾的两条评论。

PS:
如果我在获取有关 sinon.fakeServer 的代码的注释时发出请求,它会向服务器发出 get 请求。
如果我使用 sinon.fakeServer 发出获取请求,它不会获取任何东西(服务器和夹具)


(1)

在此处输入图像描述

0 投票
0 回答
280 浏览

javascript - 单元测试 base.js 类

我正在测试一些base.jsdean edwards base.js)代码,并想测试一些基本函数是否被特定参数调用。我们的测试堆栈看起来像 js 代码、qunit、sinon。例如,我有:

所以在上面的例子中,我创建了一个“Bar”的新实例并调用了 render 方法。Bar 渲染方法指定一些配置并将其传递给父渲染方法。有什么方法(使用 sinon.js)来监视该基本渲染调用吗?我通常会做类似的事情:

但这只会让我第一次调用渲染。