问题标签 [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 回答
6481 浏览

javascript - 没有使用 jasmine.js 和 sinon.js 调用主干.js 点击事件间谍

我正在尝试使用backbone.js、jasmine.js 和sinon.js 测试按钮单击。但是下面的测试用例失败了。我正在使用间谍来跟踪它是否被调用。你能帮我解决这个问题吗?

谢谢。

新任务模板

新任务视图

Jasmine 测试用例

茉莉花输出

0 投票
6 回答
9326 浏览

javascript - 正确测试backbone.js中的路由器?

所以我刚刚开始使用sinon.js&为我正在进行的 javascript 应用程序编写测试jasmine.js。总体上工作得很好,但我还需要能够测试我的路由器。

路由器在其当前状态下将触发许多视图和其他内容,jasmine.js通过调用Backbone.navigate依赖于应用程序状态和 UI 迭代来终止当前测试。

那么我如何测试到不同位置的路由是否可行,同时保持路由器“沙盒”并且不允许它们更改路由?

我可以设置某种模拟函数来监视 pushState 更改或类似的吗?

0 投票
1 回答
2985 浏览

javascript - Sinon.js fakeServer 不使用响应方法触发回调

我正在尝试POST使用 Sinon.js 模拟请求的服务器响应。它似乎工作正常,只是不会触发成功回调。

0 投票
2 回答
1901 浏览

javascript - 未从 sinon.js fakeServer 触发回调以调用 $.ajax

我有以下茉莉花规格:

addReviewStatus 是我编写的一个 jQuery 插件:

上面的 getJSON 方法像这样调用 $.ajax:

未触发 getJSON 方法的匿名函数回调。对 $.ajax 的调用也返回 404 not found。谁能看到我做错了什么?

0 投票
2 回答
3103 浏览

backbone.js - Backbone jasmine sinon.stub typeError

我正在尝试为 Backbone Todos 集合编写一个简单的规范,该集合对 Backbone Todo 模型进行存根。

这是我的规格:

这给了我以下错误:

Todo 模型定义为 todo = new TodoApp.Models.Todo() 不会给出错误。

这是范围界定问题吗?有人能指出我正确的方向吗?

0 投票
1 回答
2493 浏览

javascript - 使用Sinon测试Backbone.js模型保存不调用成功回调

我正在使用 Jasmine 和 Sinon 测试 Backbone.js 应用程序。我正在尝试验证单击按钮单击调用模型的 save() 方法并处理成功回调,该回调将消息添加到视图的 el 元素。我无法让 sinon 服务器触发模型的成功回调。

这是我的规范 beforeEach 的样子(beforeEach 中的变量都是 var 范围在 describe 函数中)。

这就是实际测试的样子:

在尝试构建它的实现时,我创建了一个简单的回调方法来告诉我成功回调是被触发的:

当我运行测试时,控制台显示“正在保存”,但没有调用成功回调。

0 投票
3 回答
2828 浏览

javascript - Backbone.js 在浏览器中使用 Sinon Spies 查看测试

我正在为 Backbone View 编写一个测试,以测试在获取模型后是否调用了渲染函数。测试是:

我正在使用 Sinon Spies 将间谍对象附加到 profileView 视图对象的渲染函数。

观点是:

在测试中调用 fetch 之后,更改事件被触发并且视图的渲染函数被调用,但是 Sinon Spy 没有检测到渲染被调用并且失败。

作为一个实验,我尝试在测试中调用 render 函数来查看 Spy 是否识别了它:

间谍检测到调用是在上述情况下进行的。

有谁知道为什么间谍在我的初始测试中没有识别渲染调用?

0 投票
1 回答
574 浏览

javascript - 用 Sinon.js 模拟的对象不承认它们的方法通过 jQuery.delegate 回调执行

基本上,如果您使用 Sinon.js 模拟对象,该对象具有作为回调传递给 jQuery.delegate 的属性,当您触发在 jQuery.delegate 中观察到的方法时,您的模拟期望将失败。如果您在用作 jQUery.delegate 回调的匿名函数主体内执行该方法,您的期望将通过。

我在这里做错了吗?

谢谢,

艾琳

0 投票
2 回答
585 浏览

javascript - jQuery Ajax 测试不起作用

我正在尝试测试一个非常简单的 jQuery 插件,它只需调用 $.ajax 方法并将其内容放入元素中。对于测试,我使用 JsTestDriver 和 Sinon 进行模拟。

插件文件看起来:

理论上很简单的插件。

然后我写了一个单元测试模拟成功函数:

它似乎也正确。然后,如果您执行此测试,将通过控制台打印下一行:

所以成功函数正确接收“alex”字符串。然后打印 $(this) 引用,使用 html() 函数设置消息,当我记录以前的设置值时,返回 null。最后一条日志消息在测试文件中,您可以在其中看到未设置 ajax 文本。

有人知道我做错了什么吗?因为我确信我错过了一些现在我看不到的东西。

0 投票
2 回答
4982 浏览

javascript - 如何在 Jasmine 中的每次测试后自动恢复所有 sinon.js 间谍?

有什么方法可以在 sinon.js 中找到所有活跃的间谍吗?我希望能够做这样的事情:

目前,我需要费力(而且容易出错!)这样做:

有任何想法吗?