问题标签 [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 - How to test the expectation on the eventSpy
I am trying to test a backbone.model when saving.
Here's my piece of code.
As you can see from the comment there is a problem with toHaveBeenCalledOnce
method.
P.S.:
I am using jasmine 1.2.0 and Sinon.JS 1.3.4
console.log(expect(this.eventSpy));
javascript - QUnit、Sinon.js 和 Backbone 单元测试失败:sinon spy 似乎无法检测到 Backbone 模型事件回调
在以下单元测试代码中:
第三个 ok 失败,即使该函数是从主干事件绑定中有效调用的,正如控制台演示的那样。
这非常令人沮丧,并动摇了我对 sinon.js 是否适合测试我的骨干应用程序的信心。我做错了什么,或者这是 sinon 如何检测是否已调用某事的问题?有解决方法吗?
编辑:这是我的具体示例的解决方案,基于已接受答案的猴子补丁方法。虽然它在测试本身中有几行额外的设置代码,(我不再需要模块功能)它完成了工作。谢谢,mu is too short
javascript - 如何在我的 js 测试中使用 mock?
我尝试使用 QUnit 来测试我的 javascript 代码。我有简单的功能:
}
}
}
我有两个问题:1)如何验证函数CalculateBodyMassIndex 将被称为乘法函数?
2) 我如何验证函数 SummAll 将在 jQuery 库中调用 $.each ?
感谢等待答案。
javascript - 我无法测试在我的主干视图中呈现的元素的可见性
我正在开发一个 Backbone.js 应用程序,在使用Jasmine 和 Sinon添加测试时,我无法确定某些 DOM 元素的可见性:其中一些元素在测试中被检测为不可见,而我可以在我的应用程序中正确看到它们.
我创建了一个复制问题的小示例,相同的测试在两组元素上运行了两次:
- 第一组直接存在于 SpecRunner.html
- 第二个已呈现为 Backbone 视图
测试本身正在使用jQuery.is(':visible')
(通过 jasmine-jquery's .toBeVisible()
)来了解元素是否可见。它通过了第一组,而不是第二组。
我在这里将代码共享为 github 项目:https ://github.com/maximevaly/3789_js
我想我忘记了什么,或者可能误用了一个图书馆,但我不能指望它,所以如果你有任何线索...... :)
谢谢!马克西姆
jquery - 使用 Sinon.js 并阻止对我的应用服务器的调用
很简单的问题:
我希望我们 sinon.js 测试一段 javascript 以确保它$.ajax
在做两件事时调用该方法:
- 我不想真正打服务器
- 我想模拟来自服务器的响应
所以这是JS:
这是我的测试:
此测试失败,但有以下异常:
所以我想我想知道我是否可以模拟一个 jQuery 请求以获得可以成功响应.done
调用的响应,显然我不太了解defferedObject()
。
javascript - sinon.match 出现未定义,缺少正确的文件?
我试图使用sinon.match
,但注意到来自 sinon 网站的下载链接似乎没有match
。
然后我尝试match
从GitHub repo中包含 lib :
然后它抱怨:Uncaught TypeError: Object #<Object> has no method 'typeOf'
.
我尝试使用 GitHub 的 sinon:
但是现在,看来我自己需要包括间谍、存根等?例如,我怎样才能将所有内容编译成 1 个缩小文件?或者推荐的使用sinon的方法是什么?我认为它可能是通过 node/npm/require ......但我没有在工作中使用它们...... :(
javascript - jasmine.Clock VS sinon.clock 我的 jasmin.Clock.useMock() 用法有什么问题?
我只是尝试用茉莉花在 javascript/coffeescript 中进行单元测试,非常好。
我一直在尝试使用 jasmine.Clock.Mock() 及时推进并触发 setTimeout 回调。
唉 jasmine.Clock.tick(1001) 似乎没有任何效果!然后我发现 sinon.js 有自己的时间模拟,使用这个就可以了。我想了解为什么。
这是一个要测试的虚拟 jquery 插件:
这是规格的两个版本:
coffeescript - Jasmine spyOn 在诗侬没有的地方工作?
只是在做一些js测试,我一直在尝试使用sinon。我有以下测试,我想在其中存根 draw 和 draw_association 函数。jasmine 的 spyOn 似乎可以工作,但是当我使用 sinon.spy 时,它不起作用。关于为什么的任何想法?
microsoft-metro - QUnit 和 Sinon,测试 XHR 请求
我对单元测试比较陌生,我正在尝试找出一种以有意义的方式测试 XHR 请求的方法。
1)请求将各种脚本和其他资源拉入页面,我想确保正在加载正确数量的资源,并且请求成功。
2)我应该对提供资源的服务使用实际请求吗?我在 sinonjs.org 上查看了 fakeserver 和 fakexhr 请求,但我真的不明白它们如何提供有意义的测试。
3)我正在测试现有的代码,我意识到这是毫无意义的,但这是我需要做的。话虽如此,某些方法中有很多代码可能会分解为各种测试。我应该分解现有代码并为我的解释期望创建测试吗?或者只是为实际存在的内容编写测试?....如果这有任何意义。
谢谢,-约翰
jasmine - Sinon JS 假服务器自动回复用法
我将 sinon js 的假服务器与 Jasmine 一起用于 UT/IT。我已经设置了 server.autorespond = true。(即使在减少 server.autoRespondAfter 中的 ms 后也进行检查)
问题:服务器响应请求后不会触发回调(我可以检查服务器请求的日志和服务器对象本身以查看响应文本)。Jasmine 检查成功或失败 callback.CalledOnce 失败。
在以下情况下不会发生此问题:我在设置 server.respondWith(..) 后使用 server.respond() 并且在服务器响应后正确触发了我的回调。Jasmine 通过了成功或失败回调的检查。CalledOnce。
我的理解是自动响应使服务器在收到异步请求时自动响应,包括调用适当的回调?我还需要使用 server.respond 吗?
谢谢。
代码片段:读取所需的 json 文件并将其作为服务器响应发送。读取的json文件是同步调用(async false)。
在我的茉莉花规格中,我有