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

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));

asddas

0 投票
1 回答
3654 浏览

javascript - QUnit、Sinon.js 和 Backbone 单元测试失败:sinon spy 似乎无法检测到 Backbone 模型事件回调

在以下单元测试代码中:

第三个 ok 失败,即使该函数是从主干事件绑定中有效调用的,正如控制台演示的那样。

第三次测试失败 在此处输入图像描述

这非常令人沮丧,并动摇了我对 sinon.js 是否适合测试我的骨干应用程序的信心。我做错了什么,或者这是 sinon 如何检测是否已调用某事的问题?有解决方法吗?

编辑:这是我的具体示例的解决方案,基于已接受答案的猴子补丁方法。虽然它在测试本身中有几行额外的设置代码,(我不再需要模块功能)它完成了工作。谢谢,mu is too short

0 投票
3 回答
1299 浏览

javascript - 如何在我的 js 测试中使用 mock?

我尝试使用 QUnit 来测试我的 javascript 代码。我有简单的功能:

}

}

}

我有两个问题:1)如何验证函数CalculateBodyMassIndex 将被称为乘法函数?

2) 我如何验证函数 SummAll 将在 jQuery 库中调用 $.each ?

感谢等待答案。

0 投票
1 回答
2810 浏览

javascript - 我无法测试在我的主干视图中呈现的元素的可见性

我正在开发一个 Backbone.js 应用程序,在使用Jasmine 和 Sinon添加测试时,我无法确定某些 DOM 元素的可见性:其中一些元素在测试中被检测为不可见,而我可以在我的应用程序中正确看到它们.

我创建了一个复制问题的小示例,相同的测试在两组元素上运行了两次:

  • 第一组直接存在于 SpecRunner.html
  • 第二个已呈现为 Backbone 视图

测试本身正在使用jQuery.is(':visible')(通过 jasmine-jquery's .toBeVisible())来了解元素是否可见。它通过了第一组,而不是第二组。

我在这里将代码共享为 github 项目:https ://github.com/maximevaly/3789_js

我想我忘记了什么,或者可能误用了一个图书馆,但我不能指望它,所以如果你有任何线索...... :)

谢谢!马克西姆

0 投票
1 回答
2064 浏览

jquery - 使用 Sinon.js 并阻止对我的应用服务器的调用

很简单的问题:

我希望我们 sinon.js 测试一段 javascript 以确保它$.ajax在做两件事时调用该方法:

  1. 我不想真正打服务器
  2. 我想模拟来自服务器的响应

所以这是JS:

这是我的测试:

此测试失败,但有以下异常:

所以我想我想知道我是否可以模拟一个 jQuery 请求以获得可以成功响应.done调用的响应,显然我不太了解defferedObject()

0 投票
1 回答
408 浏览

javascript - sinon.match 出现未定义,缺少正确的文件?

我试图使用sinon.match,但注意到来自 sinon 网站的下载链接似乎没有match

http://jsfiddle.net/GccH5/

然后我尝试matchGitHub repo中包含 lib :

http://jsfiddle.net/GccH5/1/

然后它抱怨:Uncaught TypeError: Object #<Object> has no method 'typeOf'.

我尝试使用 GitHub 的 sinon:

http://jsfiddle.net/GccH5/2/

但是现在,看来我自己需要包括间谍、存根等?例如,我怎样才能将所有内容编译成 1 个缩小文件?或者推荐的使用sinon的方法是什么?我认为它可能是通过 node/npm/require ......但我没有在工作中使用它们...... :(

0 投票
1 回答
1748 浏览

javascript - jasmine.Clock VS sinon.clock 我的 jasmin.Clock.useMock() 用法有什么问题?

我只是尝试用茉莉花在 javascript/coffeescript 中进行单元测试,非常好。

我一直在尝试使用 jasmine.Clock.Mock() 及时推进并触发 setTimeout 回调。

唉 jasmine.Clock.tick(1001) 似乎没有任何效果!然后我发现 sinon.js 有自己的时间模拟,使用这个就可以了。我想了解为什么。

这是一个要测试的虚拟 jquery 插件:

这是规格的两个版本:

0 投票
1 回答
541 浏览

coffeescript - Jasmine spyOn 在诗侬没有的地方工作?

只是在做一些js测试,我一直在尝试使用sinon。我有以下测试,我想在其中存根 draw 和 draw_association 函数。jasmine 的 spyOn 似乎可以工作,但是当我使用 sinon.spy 时,它不起作用。关于为什么的任何想法?

0 投票
1 回答
281 浏览

microsoft-metro - QUnit 和 Sinon,测试 XHR 请求

我对单元测试比较陌生,我正在尝试找出一种以有意义的方式测试 XHR 请求的方法。

1)请求将各种脚本和其他资源拉入页面,我想确保正在加载正确数量的资源,并且请求成功。

2)我应该对提供资源的服务使用实际请求吗?我在 sinonjs.org 上查看了 fakeserver 和 fakexhr 请求,但我真的不明白它们如何提供有意义的测试。

3)我正在测试现有的代码,我意识到这是毫无意义的,但这是我需要做的。话虽如此,某些方法中有很多代码可能会分解为各种测试。我应该分解现有代码并为我的解释期望创建测试吗?或者只是为实际存在的内容编写测试?....如果这有任何意义。

谢谢,-约翰

0 投票
2 回答
3172 浏览

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)。

在我的茉莉花规格中,我有