问题标签 [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.
javascript - 没有使用 jasmine.js 和 sinon.js 调用主干.js 点击事件间谍
我正在尝试使用backbone.js、jasmine.js 和sinon.js 测试按钮单击。但是下面的测试用例失败了。我正在使用间谍来跟踪它是否被调用。你能帮我解决这个问题吗?
谢谢。
新任务模板
新任务视图
Jasmine 测试用例
茉莉花输出
javascript - 正确测试backbone.js中的路由器?
所以我刚刚开始使用sinon.js
&为我正在进行的 javascript 应用程序编写测试jasmine.js
。总体上工作得很好,但我还需要能够测试我的路由器。
路由器在其当前状态下将触发许多视图和其他内容,jasmine.js
通过调用Backbone.navigate
依赖于应用程序状态和 UI 迭代来终止当前测试。
那么我如何测试到不同位置的路由是否可行,同时保持路由器“沙盒”并且不允许它们更改路由?
我可以设置某种模拟函数来监视 pushState 更改或类似的吗?
javascript - Sinon.js fakeServer 不使用响应方法触发回调
我正在尝试POST
使用 Sinon.js 模拟请求的服务器响应。它似乎工作正常,只是不会触发成功回调。
javascript - 未从 sinon.js fakeServer 触发回调以调用 $.ajax
我有以下茉莉花规格:
addReviewStatus 是我编写的一个 jQuery 插件:
上面的 getJSON 方法像这样调用 $.ajax:
未触发 getJSON 方法的匿名函数回调。对 $.ajax 的调用也返回 404 not found。谁能看到我做错了什么?
backbone.js - Backbone jasmine sinon.stub typeError
我正在尝试为 Backbone Todos 集合编写一个简单的规范,该集合对 Backbone Todo 模型进行存根。
这是我的规格:
这给了我以下错误:
Todo 模型定义为 todo = new TodoApp.Models.Todo() 不会给出错误。
这是范围界定问题吗?有人能指出我正确的方向吗?
javascript - 使用Sinon测试Backbone.js模型保存不调用成功回调
我正在使用 Jasmine 和 Sinon 测试 Backbone.js 应用程序。我正在尝试验证单击按钮单击调用模型的 save() 方法并处理成功回调,该回调将消息添加到视图的 el 元素。我无法让 sinon 服务器触发模型的成功回调。
这是我的规范 beforeEach 的样子(beforeEach 中的变量都是 var 范围在 describe 函数中)。
这就是实际测试的样子:
在尝试构建它的实现时,我创建了一个简单的回调方法来告诉我成功回调是被触发的:
当我运行测试时,控制台显示“正在保存”,但没有调用成功回调。
javascript - Backbone.js 在浏览器中使用 Sinon Spies 查看测试
我正在为 Backbone View 编写一个测试,以测试在获取模型后是否调用了渲染函数。测试是:
我正在使用 Sinon Spies 将间谍对象附加到 profileView 视图对象的渲染函数。
观点是:
在测试中调用 fetch 之后,更改事件被触发并且视图的渲染函数被调用,但是 Sinon Spy 没有检测到渲染被调用并且失败。
作为一个实验,我尝试在测试中调用 render 函数来查看 Spy 是否识别了它:
间谍检测到调用是在上述情况下进行的。
有谁知道为什么间谍在我的初始测试中没有识别渲染调用?
javascript - 用 Sinon.js 模拟的对象不承认它们的方法通过 jQuery.delegate 回调执行
基本上,如果您使用 Sinon.js 模拟对象,该对象具有作为回调传递给 jQuery.delegate 的属性,当您触发在 jQuery.delegate 中观察到的方法时,您的模拟期望将失败。如果您在用作 jQUery.delegate 回调的匿名函数主体内执行该方法,您的期望将通过。
我在这里做错了吗?
谢谢,
艾琳
javascript - jQuery Ajax 测试不起作用
我正在尝试测试一个非常简单的 jQuery 插件,它只需调用 $.ajax 方法并将其内容放入元素中。对于测试,我使用 JsTestDriver 和 Sinon 进行模拟。
插件文件看起来:
理论上很简单的插件。
然后我写了一个单元测试模拟成功函数:
它似乎也正确。然后,如果您执行此测试,将通过控制台打印下一行:
所以成功函数正确接收“alex”字符串。然后打印 $(this) 引用,使用 html() 函数设置消息,当我记录以前的设置值时,返回 null。最后一条日志消息在测试文件中,您可以在其中看到未设置 ajax 文本。
有人知道我做错了什么吗?因为我确信我错过了一些现在我看不到的东西。
javascript - 如何在 Jasmine 中的每次测试后自动恢复所有 sinon.js 间谍?
有什么方法可以在 sinon.js 中找到所有活跃的间谍吗?我希望能够做这样的事情:
目前,我需要费力(而且容易出错!)这样做:
有任何想法吗?